關(guān)于HTTP請(qǐng)求GET和POST的區(qū)別
1.GET提交,請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭<request-line>中)
GET:特定瀏覽器和服務(wù)器對(duì)URL長(zhǎng)度有限制,例如IE對(duì)URL長(zhǎng)度的限制是2083字節(jié)(2K+35)。對(duì)于其他瀏覽器,如Netscape、FireFox等,理論上沒有長(zhǎng)度限制,其限制取決
于操作系統(tǒng)的支持。
因此對(duì)于GET提交時(shí),傳輸數(shù)據(jù)就會(huì)受到URL長(zhǎng)度的限制。
POST:由于不是通過URL傳值,理論上數(shù)據(jù)不受限。但實(shí)際各個(gè)WEB服務(wù)器會(huì)規(guī)定對(duì)post提交數(shù)據(jù)大小進(jìn)行限制,Apache、IIS6都有各自的配置。
<status-line>
<headers>
<blank line>
[<response-body>]
HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122
<html>
<head>
<title>Wrox Homepage</title>
</head>
<body>
<!-- body goes here -->
</body>
</html>首先是查找瀏覽器緩存,瀏覽器會(huì)保存一段時(shí)間你之前訪問過的一些網(wǎng)址的DNS信息,不同瀏覽器保存的時(shí)常不等。
如果沒有找到對(duì)應(yīng)的記錄,這個(gè)時(shí)候?yàn)g覽器會(huì)嘗試調(diào)用系統(tǒng)緩存來繼續(xù)查找這個(gè)網(wǎng)址的對(duì)應(yīng)DNS信息。
如果還是沒找到對(duì)應(yīng)的IP,那么接著會(huì)發(fā)送一個(gè)請(qǐng)求到路由器上,然后路由器在自己的路由器緩存上查找記錄,路由器一般也存有DNS信息。
如果還是沒有,這個(gè)請(qǐng)求就會(huì)被發(fā)送到ISP(注:Internet Service Provider,互聯(lián)網(wǎng)服務(wù)提供商,就是那些拉網(wǎng)線到你家里的運(yùn)營(yíng)商,中國(guó)電信中國(guó)移動(dòng)什么的),ISP也會(huì)有相
應(yīng)的ISP DNS服務(wù)器,一聽中國(guó)電信就知道這個(gè)DNS服務(wù)器的規(guī)??隙ú粫?huì)小,所以基本上都能在這里找得到。題外話:會(huì)跑到這里進(jìn)行查詢是因?yàn)槟銢]有改動(dòng)過"網(wǎng)絡(luò)中
心"的"ipv4"的DNS地址,萬惡的電信聯(lián)通可以改動(dòng)了這個(gè)DNS服務(wù)器,換句話說他們可以讓你的瀏覽器跳轉(zhuǎn)到他們?cè)O(shè)定的頁(yè)面上,這也就是人盡皆知的DNS和HTTP劫持,ISP們
還美名曰“免費(fèi)推送服務(wù)”。強(qiáng)烈鄙視這種霸王行為。我們也可以自行修改DNS服務(wù)器來防止DNS被ISP污染。
如果還是沒有的話, 你的ISP的DNS服務(wù)器會(huì)將請(qǐng)求發(fā)向根域名服務(wù)器進(jìn)行搜索。根域名服務(wù)器就是面向全球的頂級(jí)DNS服務(wù)器,共有13臺(tái)邏輯上的服務(wù)器,從A到M命名,真正
的實(shí)體服務(wù)器則有幾百臺(tái),分布于全球各大洲。所以這些服務(wù)器有真正完整的DNS數(shù)據(jù)庫(kù)。如果到了這里還是找不到域名的對(duì)應(yīng)信息,那只能說明一個(gè)問題:這個(gè)域名本來就不
存在,它沒有在網(wǎng)上正式注冊(cè)過?;蛘哔u域名的把它回收掉了(通常是因?yàn)榍焚M(fèi))。
這也就是為什么打開一個(gè)新頁(yè)面會(huì)有點(diǎn)慢,因?yàn)楸镜貨]什么緩存,要這樣遞歸地查詢下去。
多說一句,例如"mp3.baidu.com",域名先是解析出這是個(gè).com的域名,然后跑到管理.com域名的服務(wù)器上進(jìn)行進(jìn)一步查詢,然后是.baidu,最后是mp3,
所以域名結(jié)構(gòu)為:三級(jí)域名.二級(jí)域名.一級(jí)域名。
瀏覽器終于得到了IP以后,瀏覽器接著給這個(gè)IP的服務(wù)器發(fā)送了一個(gè)http請(qǐng)求,方式為get,例如訪問nbut.cn
這個(gè)get請(qǐng)求包含了主機(jī)(host)、用戶代理(User-Agent),用戶代理就是自己的瀏覽器,它是你的"代理人",Connection(連接屬性)中的keep-alive表示瀏覽器告訴對(duì)方服務(wù)
器在傳輸完現(xiàn)在請(qǐng)求的內(nèi)容后不要斷開連接,不斷開的話下次繼續(xù)連接速度就很快了。其他的顧名思義就行了。還有一個(gè)重點(diǎn)是Cookies,Cookies保存了用戶的登陸信息,在每
次向服務(wù)器發(fā)送請(qǐng)求的時(shí)候會(huì)重復(fù)發(fā)送給服務(wù)器。Corome上的F12與Firefox上的firebug(快捷鍵shift+F5)均可查看這些信息。
發(fā)送完請(qǐng)求接下來就是等待回應(yīng)了
當(dāng)然了,服務(wù)器收到瀏覽器的請(qǐng)求以后(其實(shí)是WEB服務(wù)器接收到了這個(gè)請(qǐng)求,WEB服務(wù)器有iis、apache等),它會(huì)解析這個(gè)請(qǐng)求(讀請(qǐng)求頭),然后生成一個(gè)響應(yīng)頭和具體響
應(yīng)內(nèi)容。接著服務(wù)器會(huì)傳回來一個(gè)響應(yīng)頭和一個(gè)響應(yīng),響應(yīng)頭告訴了瀏覽器一些必要的信息,例如重要的Status Code,2開頭如200表示一切正常,3開頭表示重定向,4開頭,
如404,呵呵。響應(yīng)就是具體的頁(yè)面編碼,就是那個(gè)......,瀏覽器先讀了關(guān)于這個(gè)響應(yīng)的說明書(響應(yīng)頭),然后開始解析這個(gè)響應(yīng)并在頁(yè)面上顯示出來。在下一次CF的時(shí)候(不
是穿越火線,是http://codeforces.com/),由于經(jīng)常難以承受幾千人的同時(shí)訪問,所以CF頁(yè)面經(jīng)常會(huì)出現(xiàn)崩潰頁(yè)面,到時(shí)候可以點(diǎn)開火狐的firebug或是Chrome的F12看看狀
態(tài),不過這時(shí)候一般都急著看題和提交代碼,似乎根本就沒心情理會(huì)這個(gè)狀態(tài)吧-.-。
如果是個(gè)靜態(tài)頁(yè)面,那么基本上到這一步就沒了,但是如今的網(wǎng)站幾乎沒有靜態(tài)的了吧,基本全是動(dòng)態(tài)的。所以這時(shí)候事情還沒完,根據(jù)我們的經(jīng)驗(yàn),瀏覽器打開一個(gè)網(wǎng)址的時(shí)
候會(huì)慢慢加載這個(gè)頁(yè)面,一部分一部分的顯示,直到完全顯示,最后標(biāo)簽欄上的圈圈就不轉(zhuǎn)了。
這是因?yàn)?,主?yè)(index)頁(yè)面框架傳送過來以后,瀏覽器還要繼續(xù)向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求的內(nèi)容是主頁(yè)里面包含的一些資源,如圖片,視頻,css樣式等等。這些"非靜態(tài)"的 文章來源:http://www.zghlxwxcb.cn/news/detail-458920.html
東西要一點(diǎn)點(diǎn)地請(qǐng)求過來,所以標(biāo)簽欄轉(zhuǎn)啊轉(zhuǎn),內(nèi)容刷啊刷,最后全部請(qǐng)求并加載好了就終于好了。 文章來源地址http://www.zghlxwxcb.cn/news/detail-458920.html
到了這里,關(guān)于關(guān)于HTTP請(qǐng)求GET和POST的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!