Http協議

1)Http協議:
作用:描述客戶端與服務器間的數據傳遞。
http協議的版本:
 1.0特點:每次請求服務器上的資源都要建立新的連接,響應完畢後都會關閉連接。是無狀態的協議。
 1.1特點:在一次TCP/IP連接的基礎上可以發出多次請求和得到多次的響應。比1.0多了一些請求頭和響應頭。
協議的組成:請求部分,響應部分


2)請求部分:
1---GET /App1/1.html HTTP/1.1
2---Accept: */*
 Accept-Language: zh-cn
 Accept-Encoding: gzip, deflate
 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
 Host: localhost:8080
 Connection: Keep-Alive

    
3---username=admin&password=123
    
請求部分由三部分組成的:
請求行:位於第一行
請求消息頭:從第二行開始至第一個空行結束
請求正文:從第一個空行之後的都是正文


3)響應部分:
1---HTTP/1.1 200 OK
2---Server: Apache-Coyote/1.1
 Accept-Ranges: bytes
 ETag: W/"65-1366335797484"
 Last-Modified: Fri, 19 Apr 2013 01:43:17 GMT
 Content-Type: text/html
 Content-Length: 65
 Date: Fri, 19 Apr 2013 02:06:23 GMT
 Warnning:w1
 Warnning: w2

3---hello http
 <a href="b.html">click</a>
 <img src="1.jpg"/>

響應部分由三部分組成的:
響應行:位於第一行
響應消息頭:從第二行開始至第一個空行結束
響應正文:從第一個空行之後的都是正文 


4)請求行:GET /App1/1.html HTTP/1.1
 GET的特點:默認的請求方式。
 例:/App1/c.html?username=sdsfds&password=234324
 把表單的請求的數據放在了請求的URI的後面。→?username=sdsfds&password=234324
 這樣不好:暴露數據;請求行長度有限。
 
 POST的特點(經常使用的):藉助HTML中的form表單。
 例:<form action="c.html" method="post">
 請求參數出現在正文部分,不在UEI。長度無限制,相對安全。


5)響應行:HTTP/1.1 200 OK
 HTTP/1.1:服務器用的協議版本
 200:響應碼。代表服務器處理的結果的一種表示
  200:正常
  302/307:重定向
  304:服務器的資源沒有被修改
  404:請求的資源不存在
  500:服務器報錯了
  OK:響應碼描述


  
6)請求消息頭:向服務器傳遞附加信息
 Accept:通知服務器,瀏覽器可以接受的MIME類型。(文件系統中用文件擴展名區分數據的類型。網絡上用MIME類型來區分數據類型。Tomcat\conf\web.mxl)
  MIME類型名稱:大類型/小類型
 Accept-Charset:通知服務器,瀏覽器支持的字符集
 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:這是最重要的請求頭信息之一(會話有關)


    
7)響應消息頭:
 *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             網頁的有效時間。單位是毫秒
 *Cache-Control: no-cache (1.1) 
 *Pragma: no-cache   (1.0)                               通知客戶端不要緩存
 

發佈了29 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章