HTTP協議詳解

HTTP詳解1:
1.瞭解HTTP
2.請求行與狀態行
3.通用信息頭
4.請求頭
5.響應頭
6.實體頭
7.擴展頭


1.瞭解HTTP
1.1.HTTP簡介
1.2.HTTP1.0的會話方式
1.3.HTTP1.1與HTTP1.0的比較
1.4.HTTP消息的格式
1.5.HTTP的消息頭

1.1 HTTP簡介
@ 用於定義web瀏覽器與web服務器之間交換數據的過程以及數據本身的格式。
@ HTTP協議的版本
http1.0、1.1、NG

1.2.HTTP1.0的會話方式
四個步驟:
建立連接
發出請求信息
回送響應信息
關閉連接
瀏覽器和WEB服務器的連接過程是短暫的。每次連接只處理一個請求和響應,對每一個頁面的訪問,瀏覽器與web服務器都要建立一次單獨的連接。
所有通訊都是完全獨立分開的請求和響應對。
支持代理
代理服務器會存儲緩存

瀏覽器訪問多圖網頁的過程。
1.針對網頁請求;
2.在瀏覽器解析過程中,通過url地址,再次發出下載圖像地址的請求。

1.3.HTTP1.1與HTTP1.0的比較
在一個TCP連接上可以傳送多個HTTP請求和響應。
多個請求和響應過程可以重疊進行。
建立連接
發出第1次請求
發出第N次請求
回送第1次響應
回送第N次響應
發出關閉連接請求
關閉連接
keep-alive
增加了更多的請求頭和響應頭。

1.4.HTTP請求消息
請求消息的結構:
一個請求行,若干消息頭,以及實體內容,其中消息頭和實體內容都是可選的,消息頭和實體內容之家你要用空行隔開。
舉例:
GET /books/java.html HTTP/1.1                        請求行
Accept:*/*                                           消息頭
Accept-language:en-us                                消息頭
Connection:Keep-Alive                                消息頭
Host:localhost                                       消息頭
Referer:http://localhost/links.asp                   消息頭
User-Agent:Mozilla/4.0                               消息頭
Accept-Encoding:gzip,deflate                         消息頭
                                                     空行
GET方式的實體行爲空,只有POST等方法纔有實體行

GET方式的請求,參數在 “GET URI HTTP/1.1”,在URI中,所以參數纔有了長度的限制。

1.5.HTTP響應消息
就是服務器回送給瀏覽器的消息
響應消息的結構:與請求消息一樣,包括一個狀態行,若干消息行,以及實體內容。
舉例:
HTTP/1.1 200 OK                                      狀態行
Server:Microsoft-IIS、5.0                            消息行
Date:Thu, 13 Jul 2000 05:46:53 GMT                   消息行
Content-Length:2291                                  消息行
Content-Type:text/html                               消息行
Cache-control:private                                消息行
                                                     空行
<HTML>                                               實體行
<BODY>                                               實體行

1.6.HTTP消息 其他消息
@ 響應消息的實體內容就是網頁文件的內容,也就是在瀏覽器中使用查看源文件的凡是看到的內容
@ 一個使用GET方式的請求消息中不能包含實體內容,只有使用POST、PUT和DELETE方式的請求消息中纔可以包含實體內容。
@ 對於HTTP1.1來說,如果HTTP消息中包含實體內容,且沒有采用chunked傳輸編碼方式,那麼消息頭部分必須包含內容長度的字段,否則,客戶和服務程序就無法知道實體內容何時結束。
@ 在HTTP協議中,還可以使用簡單的請求消息和響應消息,他們都沒有消息頭部分。簡單的請求消息中能用於GET方式,且請求行中不用指定HTTP版本號。對於簡單的請求消息,服務器返回簡單的響應消息,簡單的響應消息中只返回實體內容。

1.7.HTTP消息頭
@ 使用消息頭,可以實現HTTP客戶機與服務器之間的條件請求和應答。
消息頭相當於服務器與瀏覽器之間的一些暗號指令。
@ 每個消息頭包含一個頭字段名稱,然後依次是冒號、空格、值、回車和換行符。
舉例:Accept-Language: en-us
@ 消息頭字段名是不區分大小寫的,但習慣上將每個單詞的第一個字母大寫。
@ 消息頭又可以分爲通用消息頭、請求頭、響應頭、實體頭等四類。
@ 許多請求頭字段都允許客戶端在值部分指定多個可接受的選項,多個項之間以逗號分隔。
舉例:Accept-Encoding:gzip, compress
@ 有些頭字段可以出現多次,例如:響應消息中可以包含有多個“Warning”頭字段。


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xx_liuhui/archive/2008/10/19/3094706.aspx

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