1. 程式人生 > >http協議的相關知識

http協議的相關知識

per art title uri 方法 能夠 head 版本號 網絡資源

因為如今的工作設計的Web開發,因此了解了一下Http協議。在閱讀了這篇文章HTTP協議具體解釋(真的非常經典)後,總結了相關經常使用知識並列在此處以方便以後的查詢。

HTTP協議的主要特點可概括例如以下:
1.支持客戶/server模式。


2.簡單高速:客戶向server請求服務時,僅僅需傳送請求方法和路徑。請求方法經常使用的有GET、HEAD、POST。每種方法規定了客戶與server聯系的類型不同。

因為HTTP協議簡單,使得HTTPserver的程序規模小,因而通信速度非常快。
3.靈活:HTTP同意傳輸隨意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無連接:無連接的含義是限制每次連接僅僅處理一個請求。server處理完客戶的請求。並收到客戶的應答後,即斷開連接。採用這樣的方式能夠節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。

缺少狀態意味著假設興許處理須要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。還有一方面。在server不須要先前信息時它的應答就較快。


HTTP URL (URL是一種特殊類型的URI,包括了用於查找某個資源的足夠的信息)的格式例如以下:

http://host[":"port][abs_path]
http表示要通過HTTP協議來定位網絡資源;host表示合法的Internet主機域名或者IP地址。port指定一個端口號。為空則使用缺省端口80;abs_path指定請求資源的URI;假設URL中沒有給出abs_path,那麽當它作為請求URI時,必須以“/”的形式給出,通常這個工作瀏覽器自己主動幫我們完畢。
eg:
1、輸入:www.guet.edu.cn
瀏覽器自己主動轉換成:http://www.guet.edu.cn/
2、http:192.168.0.116:8080/index.jsp

User-Agent

我們上網登陸論壇的時候,往往會看到一些歡迎信息,當中列出了你的操作系統的名稱和版本號。你所使用的瀏覽器的名稱和版本號,這往往讓非常多人感到非常奇妙,實際上,server應用程序就是從User-Agent這個請求報頭域中獲取到這些信息。User-Agent請求報頭域同意client將它的操作系統、瀏覽器和其他屬性告訴server。只是。這個報頭域沒必要的,假設我們自己編寫一個瀏覽器,不使用User-Agent請求報頭域,那麽server端就無法得知我們的信息了。
在Android中獲取系統的userAgent代碼例如以下:System.getProperty("http.agent");在我的手機上打印出:
Dalvik/1.6.0 (Linux; U; Android 4.3; GT-I9300 Build/JSS15J)


Accept-Encoding
HTTP Header中Accept-Encoding 是瀏覽器發給server,聲明瀏覽器支持的編碼類型
常見的有
Accept-Encoding: compress, gzip //支持compress 和gzip類型
Accept-Encoding: //默認是identity
Accept-Encoding: * //支持全部類型 Accept-Encoding: compress;q=0.5, gzip;q=1.0//按順序支持 gzip , compress
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按順序支持 gzip , identity
server返回的相應的類型編碼header是 content-encoding.server處理accept-encoding的規則例如以下所看到的 1. 假設server能夠返回定義在Accept-Encoding 中的不論什麽一種Encoding類型, 那麽處理成功(除非q的值等於0, 等於0代表不可接受)


http協議的相關知識