Http請求與響應


Http協議對瀏覽器發出的Request格式以及對Web服務器發出的Response格式有具體的規定。

 

請求部分由三部分組成:

  •  Requset line:請求行,位於第一行
  •  Request headers:請求消息頭,從第二行開始至第一個空行結束
  •  Request body:請求正文,從第一個空行之后的都是正文

響應部分也由三部分組成:

  •  Response line:響應行,位於第一行
  •  Response headers:響應消息頭,從第二行開始至第一個空行結束
  •  Response body:響應正文,從第一個空行之后的都是正文

 

一、Http請求

 

Http請求具體格式如下:

Method Path-to-resource Http/Version-number

User-agent 瀏覽器的類型

Accept 瀏覽器接受的MIME類型

Accept language 用戶選擇的接受語言

Accept-charset 用戶首選的編碼字符集

……

           空行

                    Option Request Body

 

①請求行:

1.Method為請求方式,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE,常用的是GET和POST

GET的特點:默認的請求方式。
當請求的資源路徑為/SdustExam/Login.jsp?username=admin&password=123456時,GET方式會把表單的請求的數據放在請求的URI的后面,?username=admin&password=123456,這樣會暴露數據,而且請求行長度有限。

POST的特點(經常使用的):借助HTML中的form表單。<form action="Login.jsp" method="post">請求參數出現在正文部分,長度木有限制,相對安全。

 

2.Path-to-resource :請求的資源的URI。例如/SdustExam/Login.jsp

 

3.Http/Version-number:客戶端使用的協議的版本,有HTTP/1.0和HTTP/1.1。

HTTP/1.0:特點:每次請求服務器上的資源都要建立新的連接,響應完畢后都會關閉連接。是無狀態的協議。
HTTP/1.1:特點:在一次TCP/IP連接的基礎上可以發出多次請求和得到多次的響應。比1.0多了一些請求和響應頭。

 

②請求消息頭

向服務器傳遞附加信息

Accept:通知服務器,瀏覽器可以接受的MIME類型。(文件系統中用文件擴展名區分數據的類型。網絡上用MIME類型來區分數據類型。Tomcat\conf\web.xml)
MIME類型名稱:大類型/小類型 如text/html、text/css等等
Accept-Charset:通知服務器,瀏覽器支持的字符集,如gbk,utf-8
Accept-Encoding:通知服務器,瀏覽器能夠解碼的數據壓縮方式。比如:gzip
Accept-language:通知服務器,所希望的語言
Host:請求的主機和端口
Referer:是一個URL地址。取值是當前頁面之前的那個頁面地址的。防盜鏈用
Content-Type:通知服務器,請求正文的MIME類型。取值:application/x-www-form-urlencoded默認值,對應的是form表單的enctype屬性
If-Modified-Since:通知服務器,緩存的文件的最后修改時間。
User-Agent:通知服務器,瀏覽器類型.
Content-Length:表示請求消息正文的長度 
Connection:表示是否需要持久連接。如果服務器看到這里的值為“Keep -Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接 )
Cookie:這是最重要的請求頭信息之一(會話有關)

 

二、http響應

 

http響應具體格式如下:

  Http/Version-number  Statuscode  message

Server 服務器的類型信息

Content-type 響應的MIME類型信息

Content-length 被包含在相應類型中的字符數量

……

           空行

Option Response Body

 

①響應行:

Http/Version-number:服務器用的協議版本
Statuscode:響應碼。代表服務器處理的結果的一種表示,常用的響應碼有:
      200:正常
      302/307:重定向
      304:服務器的資源沒有被修改
      404:請求的資源不存在
      500:服務器報錯了
message:響應碼描述。例如200的描述為OK

 

②響應消息頭:

Location:通知客戶端,指示新的資源的位置(結合302/307來用。請求重定向)
Server:通知客戶端,服務器的類型
Content-Encoding:通知客戶端,響應正文的壓縮編碼方式。常用的是gzip。
Content-Length:通知客戶端響應正文的數據大小
Content-Type:通知客戶端響應正文的MIME類型
Refresh:讓瀏覽器自動刷新。取值為整數(刷新的時間間隔,單位是秒)
     Refresh:3
     Refresh:3;URL=其他資源的URI
Content-Disposition:通知客戶端,以下載的方式打開資源。
Content-Disposition:attachment;filename=1.jpg
Set-Cookie:SS=Q0=5Lb_nQ; path=/search服務器端發送的Cookie(會話有關)
Expires: -1 網頁的有效時間。單位是毫秒,-1為通知客戶端不要緩存
Cache-Control: no-cache (1.1)  通知客戶端不要緩存
Pragma: no-cache (1.0) 通知客戶端不要緩存


免責聲明!

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



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