HTTP協議數據包簡單總結


HTTP協議是什么

由w3c制定的一種網絡應用層協議,定義了瀏覽器與web服務器之間通信時所使用的數據格式。

 

通信過程

1.瀏覽器建立與web服務器之間的連接

2.瀏覽器將請求數據打包(生成請求數據包)並發送到web服務器

3.web服務器將處理結果打包(生成響應數據包)並發送給瀏覽器

4.web服務器關閉連接

總結:

建立連接——>發送請求數據包——>返回響應數據包——>關閉連接

 

 

數據格式

請求數據包包含什么

1.請求行:請求類型/請求資源路徑、協議的版本和類型

2.請求頭:一些鍵值對,一般由w3c定義,瀏覽器與web服務器之間都可以發送,表示特定的某種含義

3.【空行】請求頭與請求體之間用一個空行隔開;

4.請求體:要發送的數據(一般post方式會使用);例:userName=123&password=123&returnUrl=/

   

如:

# Request Headers POST /adduser HTTP/1.1 Host: localhost:8030 Connection: keep-alive Content-Length: 16 Pragma: no-cache Cache-Control: no-cache Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 Content-Type: application/x-www-form-urlencoded Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 # Form Data name=name&age=11

 

請求頭含義:

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請求是從什么網站來的。
 Content-Type:用來表名request的內容類型。可以用HttpServletRequest的getContentType()方法取得。 Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1. Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同於文件格式,它是為了壓縮文件並加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。

 

get和post的區別

1.get直接在瀏覽器輸入,post需要工具發送請求

2.get用url或者cookie傳參,post將數據放在body中

3.get的URL有長度限制,post數據可以非常大

4.post比get安全,因為URL看不到數據

5.get用來獲取數據,post用來發送數據

 

 

 

 

 

響應數據包包含什么

1.狀態行:協議版本、數字形式的狀態代碼和狀態描述,個元素之間以空格分隔

2.響應頭:包含服務器類型、日期、長度、內容類型等

3.【空行】響應頭與響應體之間用空行隔開

4.響應正文:程序處理后果,瀏覽器會將實體內容中的數據取出來,生成相應的頁面

 

如:

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

 

常見狀態碼

1**:提示信息-表示請求已收到,繼續處理

2**:發送成功(200)

3**:重定向(302)

4**:客戶端錯誤

  400.發送請求有語法錯誤

  401.訪問頁面沒有授權

  403.沒有權限訪問該頁面

  404.沒有該頁面

5**:服務端錯誤

  500.服務器內部異常

  504.服務器請求超時,沒有返回結果

 


免責聲明!

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



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