http請求數據的方式以及格式


http請求報包含三個部分:

請求行 + 請求頭 + 數據體

請求行包含三個內容 method + request-URI + http-version 如 GET /icwork/? Search = product HTTP/1.1

method 包含有 post , get, head,delete, put, connect, options, patch, propfind, propatch, mkcol, copy, move, lock, unlock, trace, head

方法:

 

get 

通過請求URI獲得資源
post  用於添加新的資源,用於表單提交

put 

用於修改某個內容
delete  刪除某個內容
connect  用於代理進行傳輸例如SSL
options  詢問可以執行那些方法
patch  部分文檔更該
propfind  查看屬性
proppatch  設置屬性
mkcol  創建集合
copy  拷貝
move  移動
lock  加鎖
unlock  解鎖
trace  用於遠程診斷服務器
head  類似於get,用於檢查對象是否存在用於得到元數據

 

 

請求頭

請求頭包含:

Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式。Servlet可以根據它判斷並返回適當的文件格式。

User-Agent:是客戶瀏覽器名稱

Host:對應網址URL中的Web名稱和端口號。

Accept-Langeuage:指出瀏覽器可以接受的語言種類,如en或en-us,指英語。

connection:用來告訴服務器是否可以維持固定的HTTP連接。http是無連接的,HTTP/1.1使用Keep-Alive為默認值,這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接

Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能。

Referer:表明產生請求的網頁URL。如比從網頁/icconcept/index.jsp中點擊一個鏈接到網頁/icwork/search,在向服務器發送的GET/icwork/search中的請求中,Referer是http://hostname:8080/icconcept/index.jsp。這個屬性可以用來跟蹤Web請求是從什么網站來的。

User-Agent:是客戶瀏覽器名稱。

Content-Type:用來表名request的內容類型。可以用HttpServletRequest的getContentType()方法取得。

Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1.

Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同於文件格式,它是為了壓縮文件並加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。

getf方法請求頭例如:

復制代碼
Accept:image/webp,image/*,*/*;q=0.8  
指瀏覽器或其他客戶可以接愛的MIME文件格式。Servlet可以根據它判斷並返回適當的文件格式。 Accept-Encoding:gzip, deflate, sdch, br
指出瀏覽器可以接受的編碼方式。編碼方式不同於文件格式,它是為了壓縮文件並加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。 Accept-Language:en-US,en;q=0.8
指出瀏覽器可以接受的語言種類,如en或en-us,指英語。 Connection:keep-alive
用來告訴服務器是否可以維持固定的HTTP連接。http是無連接的,HTTP/1.1使用Keep-Alive為默認值,
這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接 Cookie:PSTM=1466499789; BAIDUID=D3A617EE01FFA9DB9B7E3E5F0D3A01EE:FG=1; BIDUPSID=4AA34EC11075CB66B8BC9792DD422B6F; BDUSS=VCc1M0cVQtYnFGfmxTUW5kVTUydnBZUmhiWFRXbnRlMnpIdWV2ODVxNHZ1WkZYQVFBQUFBJCQAAAAAAAAAAAEAAADkEA1ZtPO3rMfRt6zH0cfRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8salcvLGpXdz; BD_HOME=1; BD_UPN=123353; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; BD_CK_SAM=1; H_PS_PSSID=19292_18286_1458_20318_18241_20369_17942_20388_19690_20417_18560_17001_15560_12277_20253; BDSVRTM=0 Host:www.baidu.com Referer:https://www.baidu.com/s?wd=http%20%E8%AF%B7%E6%B1%82%E6%95%B0%E6%8D%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E6%A0%BC%E5%BC%8F&rsv_spt=1&rsv_iqid=0x9b746a8000022af9&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=1&oq=http%20%E8%AF%B7%E6%B1%82%E6%96%B9%E5%BC%8Fpost%20url%E6%A0%BC%E5%BC%8F&rsv_t=59fb7cEn5xgK8JFpqQ7F7coy6k6dn5sGpEMj1cDM4oMoy0TGArJ2l3fxOqy6F9lXoqoi&inputT=7936&rsv_pq=ca5859d100027005&rsv_sug3=73&rsv_sug1=12&rsv_sug7=100&rsv_sug2=0&rsv_sug4=32020 User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36
復制代碼

post方法的請求頭

復制代碼
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Authorization:Basic WkEtMTE0MjcyNjAyMDY=
Connection:keep-alive
Content-Length:666
Content-Type:application/json
Host:zhihu-web-analytics.zhihu.com
Origin:http://www.zhihu.com
Referer:http://www.zhihu.com/question/41690822
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36
Request Payload
view source
復制代碼

相比之下多了content-Type 和 Content-Length

Content-Type:表示的是請求報文體的 MIME 類型  ,注:GET的請求消息體是空的 所以不需要指定消息體的MIME類型

Content-Length:表示的是 post的數據的長度 

例如請求數據:

復制代碼
1 GET/sample.jspHTTP/1.1
2 Accept:image/gif.image/jpeg,*/*
3 Accept-Language:zh-cn
4 Connection:Keep-Alive
5 Host:localhost
6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
7 Accept-Encoding:gzip,deflate
8  
9 username=jinqiao&password=1234
復制代碼

第一行為http請求行,包含方法,URI 和http版本

1-7為請求頭,包含瀏覽器,主機,接受的編碼方式和壓縮方式

第8行表示一個空行 表示請求頭結束 這個空行是必須的

第9行是數據體,比如是需要查詢的信息。

http響應體由三部分組成:

http響應由三個部分組成分別是狀態行,響應頭,響應正文。

狀態行是由:HTTP-Version+Status-Code+Reason-Phrase
比如:HTTP/1.1 200 ok
分別表示http版本 + 狀態碼 + 狀態代碼的文本描述
狀態碼:


1xx 指示信息–表示請求已接收,繼續處理
2xx 成功–表示請求已被成功接收、理解、接受
3xx 重定向–要完成請求必須進行更進一步的操作。
4xx 客戶端錯誤–請求有語法錯誤或請求無法實現。
5xx 服務器端錯誤–服務器未能實現合法的請求。
響應頭:包含服務器類型,日期,長度,內容類型等
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112

 響應正文響應正文就是服務器返回的HTML頁面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM