http協議

HTTP協議的主要特色:html

1.支持客戶/服務器模式。瀏覽器

2.簡單快速。緩存

3.靈活。服務器

4.無鏈接。性能

5.無狀態。測試

1、URL詳解編碼

1)RUL組成spa

http://www.lopan.com/count/pluginDownload.html?userName=紫風#namehtm

1.協議部分:該URL的協議部分爲「http:」,這表明網頁使用的是HTTP協議。ip

2.域名部分:該URL的域名部分爲「www.lopan.com」。

3.端口部分:跟在域名後面的是端口,域名和端口之間使用「:」做爲分隔符。

4.虛擬目錄部分:從域名後的第一個「/」開始到最後一個「/」爲止,是虛擬目錄部分,如:count。

5.文件名部分:如:pluginDownload.html。

6.錨部分:從「#」開始到最後,都是錨部分(非必須)。

7.參數部分:從「?」開始到「#」爲止之間的部分爲參數部分,如:userName=紫風。

2)URL解析過程

1.域名解析:如輸入lopan.com,瀏覽器自動解析爲http://www.lopan.com/index.html。

2.查找域名對應ip,先在查找本地的緩存(包括瀏覽器緩存,系統緩存,host),若沒有,則向本機設定的DNS服務器發送DNS請求,服務器重複查找的過程,仍是沒有,再向下一個DNS服務器發送請求。

3.原路返回

3)http協議請求過程

 

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所標識的資源的響應消息報頭
PUT     請求服務器存儲一個資源,並用Request-URI做爲其標識
DELETE  請求服務器刪除Request-URI所標識的資源
TRACE   請求服務器回送收到的請求信息,主要用於測試或診斷
CONNECT 保留未來使用
OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求

二、請求報頭後述
三、請求正文(略) 

4)http協議響應過程

HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文
一、狀態行格式以下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服務器HTTP協議的版本;Status-Code表示服務器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。
狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操做
4xx:客戶端錯誤--請求有語法錯誤或請求沒法實現
5xx:服務器端錯誤--服務器未能實現合法的請求

二、響應報頭後述

三、響應正文就是服務器返回的資源的內容 

5)http消息報頭

 HTTP消息由客戶端到服務器的請求和服務器到客戶端的響應組成。請求消息和響應消息都是由開始行(對於請求消息,開始行就是請求行,對於響應消息,開始行就是狀態行),消息報頭(可選),空行(只有CRLF的行),消息正文(可選)組成。

HTTP消息報頭包括普通報頭、請求報頭、響應報頭、實體報頭。
每個報頭域都是由名字+「:」+空格+值 組成,消息報頭域的名字是大小寫無關的。

一、普通報頭
在普通報頭中,有少數報頭域用於全部的請求和響應消息,但並不用於被傳輸的實體,只用於傳輸的消息。

二、請求報頭
請求報頭容許客戶端向服務器端傳遞請求的附加信息以及客戶端自身的信息。

經常使用的請求報頭
Accept
Accept請求報頭域用於指定客戶端接受哪些類型的信息。eg:Accept:image/gif,代表客戶端但願接受GIF圖象格式的資源;Accept:text/html,代表客戶端但願接受html文本。
Accept-Charset
Accept-Charset請求報頭域用於指定客戶端接受的字符集。eg:Accept-Charset:iso-8859-1,gb2312.若是在請求消息中沒有設置這個域,缺省是任何字符集均可以接受。

三、響應報頭
響應報頭容許服務器傳遞不能放在狀態行中的附加響應信息,以及關於服務器的信息和對Request-URI所標識的資源進行下一步訪問的信息。

經常使用的響應報頭
Location
Location響應報頭域用於重定向接受者到一個新的位置。Location響應報頭域經常使用在更換域名的時候。
Server
Server響應報頭域包含了服務器用來處理請求的軟件信息。與User-Agent請求報頭域是相對應的。

四、實體報頭
請求和響應消息均可以傳送一個實體。一個實體由實體報頭域和實體正文組成,但並非說實體報頭域和實體正文要在一塊兒發送,能夠只發送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元信息。

經常使用的實體報頭Content-EncodingContent-Encoding實體報頭域被用做媒體類型的修飾符,它的值指示了已經被應用到實體正文的附加內容的編碼,於是要得到Content-Type報頭域中所引用的媒體類型,必須採用相應的解碼機制。Content-Encoding這樣用於記錄文檔的壓縮方法,eg:Content-Encoding:gzipContent-LanguageContent-Language實體報頭域描述了資源所用的天然語言。沒有設置該域則認爲實體內容將提供給全部的語言閱讀者。eg:Content-Language:da

相關文章
相關標籤/搜索