

下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 5/5GET和POST的原理和區(qū)別 GET和POST的原理和區(qū)別 總結(jié):1、請(qǐng)求行(request-line)中的URL部分必須以application/x-form-urlencoded方式編碼。 2、主體數(shù)據(jù)(request-body)的編碼方式由頭部(headers)信息中的Content-Type指定。 3、主體數(shù)據(jù)(request-body)的長(zhǎng)度由頭部(headers)信息中的Content-Length指定。 4、以GET方式提交表單時(shí),每個(gè)表單域的NAME與VALUE 要以URL的方式提交,所以每個(gè)表單域的NAME與VALUE 均要進(jìn)行URL Encoding處理。這個(gè)操作通
2、常是由用戶端瀏覽器完成的。 5、以POST方式提交表單時(shí),action標(biāo)簽屬性的值必須是已經(jīng)進(jìn)行了URL Encoding處理之后的值,用戶端瀏覽器不會(huì)自動(dòng)處理URL中的非法字符。 6、GET方式在request-line中傳送數(shù)據(jù);POST方式在request-line及request-body中均可以傳送數(shù)據(jù)。 講解: HTTP請(qǐng)求 從使用者的角度看,一個(gè)HTTP請(qǐng)求起始于 用戶端瀏覽器上輸入的一個(gè)URL地址; 網(wǎng)頁(yè)中的一個(gè)超鏈接; 提交一個(gè)HTML表單。 但本質(zhì)上說(shuō),一個(gè)HTTP請(qǐng)求起始于用戶端向HTTP服務(wù)器發(fā)送的一個(gè)URL請(qǐng)求。 一個(gè)標(biāo)準(zhǔn)的HTTP請(qǐng)求由以下幾個(gè)部分組成 reques
3、t-line headers CRLF request-bodyCRLF 在HTTP請(qǐng)求中,第一行是請(qǐng)求行(request-line),用來(lái)說(shuō)明請(qǐng)求類型、要訪問(wèn)的資源(URL)以及使用的HTTP版本;緊接著是多行頭部(headers)信息,用來(lái)說(shuō)明服務(wù)器要使用的附加信息; 頭部信息之后是一個(gè)回車(chē)換行符(/r/n),用于標(biāo)明頭部信息的結(jié)束。 以上是必須內(nèi)容,根據(jù)需要可在頭部信息結(jié)束之后增加主體數(shù)據(jù)(request-body); 主體數(shù)據(jù)之后是一個(gè)回車(chē)換行符(/r/n),用于標(biāo)明主體數(shù)據(jù)的結(jié)束。 需要注意的是 請(qǐng)求行(request-line)中的URL部分必須以 application/x-fo
4、rm-urlencoded方式編碼。 主體數(shù)據(jù)(request-body)的編碼方式由頭部(headers)信息中的Content-Type指定。 主體數(shù)據(jù)(request-body)的長(zhǎng)度由頭部(headers)信息中的Content-Length指定。 例如,我們可以在IE瀏覽器上輸入下面的網(wǎng)址: http:/localhost:8000/hello/index.html HTTP請(qǐng)求的頭部信息如下: GET /hello/index.html HTTP/1.1 Accept: * Accept-Language: zh-cn Accept-Encoding: gzip, deflate
5、Host: localhost:8000 Connection: Keep-Alive Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6 End 需要注意的是,以GET方式提交表單時(shí),每個(gè)表單域的NAME與VALUE要以URL的方式提交,所以每個(gè)表單域的NAME與VALUE均要進(jìn)行URL Encoding處理。這個(gè)操作 通常是由用戶端瀏覽器完成的。如下面的表單: xhtml:nogutter view plaincopy 1. /spanform action=checkUser.html method=GET 2. /spaninput
6、type=hidden name=opt value=中文/ 3. /spaninput type=text name=username value=yyy/ 4. /spaninput type=text name=age value=zzz/ 5. /spaninput type=submit value=submit/ 6. /spanform 其中表單域opt的VALUE是中文字符“中文”,在表單提交時(shí),用戶端瀏覽器會(huì)自動(dòng)將其進(jìn)行URL Encoding。HTTP頭部信息如下: GET /hello/checkUser.html?opt=中文 username=yyyage=zzz H
7、TTP/1.1 Referer: http:/localhost:8000/hello/index.html Accept: * Accept-Language: zh-cn Content-Type: application/x-form-urlencoded Accept-Encoding: gzip, deflate Host: localhost:8000 Content-Length: 20 Connection: Keep-Alive Cache-Control: no-cache Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA
8、6 username=yyyage=zzz End 需要注意的是,以POST方式提交表單時(shí),action標(biāo)簽屬性的值必須是已經(jīng)進(jìn)行了URL Encoding處理之后的值,用戶端瀏覽器不會(huì)自動(dòng)處理URL中的非法字符。如下面的表單是不符合要求的: 1. 2. /spanform action=checkUser.html?opt=中文 method=POST 3. /spaninput type=text name=username value=yyy/ 4. /spaninput type=text name=age value=zzz/ 5. /spaninput type=submit va
9、lue=submit/ 6. /spanform 正確的表單應(yīng)該是: 1. /spanform action=checkUser.html?opt=中文 method=POST 2. /spaninput type=text name=username value=yyy/ 3. /spaninput type=text name=age value=zzz/ 4. /spaninput type=submit value=submit/ 5. /spanform 數(shù)據(jù)主體的編碼方式 在HTTP請(qǐng)求中,request-line總是以 application/x-form-urlencoded方
10、式編碼。enctype標(biāo)簽屬性只對(duì)request-body起作用。也就是說(shuō)只有在method=POST的情況下,設(shè)置enctype才起作用。 設(shè)置enctype標(biāo)簽屬性后,在HTTP請(qǐng)求的頭部(headers)信息中會(huì)多出一行Content-Type信息,并且request-body 部分將會(huì)以Content-Type指定的MIME進(jìn)行編碼。這些操作都是由客戶端瀏覽器自動(dòng)完成的。 在沒(méi)有指定enctype標(biāo)簽屬性時(shí),表單以默認(rèn)的application/x-form-urlencoded方式對(duì)request-body進(jìn)行編碼。 如果表單域中的NAME或VALUE含有非法字符(如中文字符),客戶端
11、瀏覽器會(huì)自動(dòng)對(duì)其進(jìn)行URL Encoding處理。如下面的表單: xhtml:nogutter view plaincopy 1. /spanform action=checkUser.html method=POST 2. /spaninput type=hidden name=opt value=中文/ 3. /spaninput type=text name=username value=yyy/ 4. /spaninput type=text name=age value=zzz/ 5. /spaninupt type=submit value=submit/ 6. /spanform
12、 表單提交時(shí),HTTP頭部信息如下: POST /hello/checkUser.html HTTP/1.1 Accept: * Referer: http:/localhost:8000/hello/index.html Accept-Language: zh-cn Content-Type: multipart/form-data; boundary=7d931c5d043e Accept-Encoding: gzip, deflate Host: localhost:8000 Content-Length: 382 Connection: Keep-Alive Cache-Control
13、: no-cache Cookie: JSESSIONID=6FE3D8E365DF9FE26221A32624470D24 7d931c5d043e Content-Disposition: form-data; name=username yyy 7d931c5d043e Content-Disposition: form-data; name=age zzz 7d931c5d043e Content-Disposition: form-data; name=file; filename=C:/1.txt Content-Type: text/plain hello 7d931c5d043
14、e- End GET與POST的區(qū)別 HTTP請(qǐng)求的GET與POST方式的本質(zhì)區(qū)別可以參考hyddd 在淺談HTTP中Get與Post的區(qū)別一文中的描述,本 文講述了其中比較重要的一條,那就是數(shù)據(jù)傳輸?shù)奈恢貌煌?。GET方式在request-line中傳送數(shù)據(jù);POST方式在request-line及request-body中均可以傳送數(shù)據(jù)。 對(duì)網(wǎng)上傳言的解釋 傳言1:GET方式對(duì)長(zhǎng)度有限制;POST方式對(duì)長(zhǎng)度沒(méi)限制。回答:長(zhǎng)度限制之說(shuō)一方面是HTTP客戶端(如IE限定URL 長(zhǎng)度為2083字節(jié),opera 是4050,Netscape 是8192)的限制;另一方面服務(wù)器的實(shí)現(xiàn)也加入了限制(如果URL 長(zhǎng)度過(guò)長(zhǎng),HTTP服務(wù)器會(huì)報(bào)414錯(cuò)誤)。但HTTP協(xié)議及URL官方說(shuō)明均對(duì)長(zhǎng)度限制則沒(méi)有規(guī)定。 傳言2:GET是從服務(wù)器上獲取數(shù)據(jù);POST是向服務(wù)器傳 送數(shù)據(jù)。 回答:GET方式就沒(méi)有向服務(wù)器傳送數(shù)據(jù)?那么URL中的?子句送的是什么?不論是GET還是POST,都可以向服務(wù)器傳送數(shù)據(jù),只不過(guò)傳送數(shù)據(jù)的位置不同;不論是GET還是POST,都要從服務(wù)器上獲取數(shù)據(jù),否則IE瀏覽器拿什么東西給我們看呢?關(guān)鍵的問(wèn)題是 GET的主要
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)合同補(bǔ)充協(xié)議合同范本
- 單位房屋借用合同范本
- 勞動(dòng)使用期合同范本
- 利用合同范本掙錢(qián)
- 上海徐匯金杯租車(chē)合同范本
- 監(jiān)控弱電維護(hù)合同范本
- 醫(yī)院電動(dòng)車(chē)租售合同范本
- 備案的借住合同范本
- 單位之間借支合同范本
- 2003勞務(wù)合同范本
- 華為機(jī)器視覺(jué)好望系列產(chǎn)品介紹
- 質(zhì)量體系的職能架構(gòu)
- 《旅游經(jīng)濟(jì)學(xué)》全書(shū)PPT課件
- 中國(guó)醫(yī)院質(zhì)量安全管理 第3-5部分:醫(yī)療保障 消毒供應(yīng) T∕CHAS 10-3-5-2019
- 安全評(píng)價(jià)理論與方法第五章-事故樹(shù)分析評(píng)價(jià)法
- 幼兒園一日活動(dòng)流程表
- 中國(guó)民俗知識(shí)競(jìng)賽題(附答案和詳細(xì)解析)
- 最后一分鐘安全檢查
- 散裝水泥罐體標(biāo)準(zhǔn)資料
- 原發(fā)性肝癌臨床路徑最新版
- 2022年口腔醫(yī)學(xué)主治醫(yī)師(代碼353)考試題庫(kù)(匯總版)
評(píng)論
0/150
提交評(píng)論