HTTP協議 常用 總結
① http協議是建立在tcp/ip協議基礎上
② http協議全稱 超文本傳輸協議
③ http協議1.0 , 1.1版本 ,目前通用的是1.1版本
http1.0 稱爲短連接 http1.1 稱爲長連接.
所謂長,和短指的是 持續時間的 長連接 1.1 30s ,短連接是發送完數據就斷掉.
Http協議
HTTP 協議的主要特點可概括如下:
1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP 協議簡單,使得HTTP 服務器的程序規模小,因而通信速度很快。
3.靈活:HTTP 允許傳輸任意類型的數據對象。正在傳輸的類型Content-Type 加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
5.無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
Http 請求由三部分組成,分別是:請求行、消息報頭、請求正文
基本結構:
[消息頭格式 (消息名: 內容 )
GET /test/hello.html HTTP/1.1 [請求行]
Accept: */* [消息名] 消息名:內容
Referer: http://localhost:8080/test/abc.html
Accept-Language: zh-cn
User-Agent: Mozilla/4.0
Accept-Encoding: gzip, deflate
Host: http://www.sohu.com:80
Connection: Keep-Alive
特別說明: 並不是每一次請求的消息頭都一樣.]
空行
發送的內容 [格式 : 內容名字=內容體]
http請求消息頭
- 1 Accept: text/html,image/* [告訴服務器,我可以接受文本,網頁,圖片]
- 2. Accept-Charset: ISO-8859-1 [接受字符編碼iso-8859-1]
- 3. Accept-Encoding: gzip,compress [可以接受 gzip,compress壓縮後數據.]
- 4. Accept-Language: en-us,zh-cn [瀏覽器支持中,英文]
- 5. Host: www.sohu.com:80 [我要找主機是www.sohu.com:80]
- 6. If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT [ 告訴服務器,我的緩衝中有這個資源文件,該文件的時間是。。。]
- 7. Referer: http://www.sohu.com/index.jsp [告訴服務器,我來自哪裏,該消息頭,常用於防止盜鏈]
- 8. User-Agent:Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)[告訴服務器,瀏覽器內核]
- 9. Cookie [cookie??]
- 10. Connection:close/Keep-Alive [保持連接,發完數據後,我不關閉連接]
- 11. Date: Tue, 11Jul 2000 18:23:51 GMT [瀏覽器發送該http請求的時間]
請求行以一個方法符號開頭,以空格分開,後面跟着請求的URI 和協議的版本,格式如下:Method Request-URI HTTP-Version CRLF其中Method 表示請求方法;Request-URI 是一個統一資源標識符;HTTP-Version 表示請求的HTTP 協議版本;CRLF 表示回車和換行(除了作爲結尾的CRLF 外,不允許出現單獨的CR 或LF 字符)。
請求方法(所有方法全爲大寫)有多種,各個方法的解釋如下:
GET 請求獲取Request-URI 所標識的資源
POST 在Request-URI 所標識的資源後附加新的數據
HEAD 請求獲取由Request-URI 所標識的資源的響應消息報頭
狀態代碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
格式:HTTP版本號 狀態碼 原因敘述
舉例:HTTP/1.1 200 OK
狀態碼 含義
100-199 表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程
200-299 表示成功接收請求並完成整個處理過程,常用200
300-399 爲完成請求,客戶需要進行一步細化請求。例如:請求的資源已經移動一個新的地址,常用302,307
400-499 客戶端的請求有錯誤404
500-599 服務器端出現錯誤,常用500
- http響應消息頭詳解
- n Location: http://www.baidu.org/index.jsp 【讓瀏覽器重新定位到url】
- n Server:apache tomcat 【告訴瀏覽器我是tomcat】
- n Content-Encoding: gzip 【告訴瀏覽器我使用 gzip】
- n Content-Length: 80 【告訴瀏覽器會送的數據大小80節】
- n Content-Language: zh-cn 【支持中文】
- n Content-Type: text/html; charset=GB2312 [內容格式text/html; 編碼gab2312]
- n Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 【告訴瀏覽器,該資源上次更新時間】
- n Refresh: 1;url=http://www.baidu.com 【過多久去,刷新到 http://www.baidu.com】
- n Content-Disposition: attachment; filename=aaa.zip 【告訴瀏覽器,有文件下載】
- n Transfer-Encoding: chunked [傳輸的編碼]
- n Set-Cookie:SS=Q0=5Lb_nQ;path=/search[後面詳講]
- n Expires: -1[告訴瀏覽器如何緩存頁面IE]
- n Cache-Control: no-cache [告訴瀏覽器如何緩存頁面火狐]
- n Pragma: no-cache [告訴瀏覽器如何緩存頁面]
- n Connection: close/Keep-Alive [保持連接 1.1是Keep-Alive]
- n Date: Tue, 11 Jul 200018:23:51 GMT