HTTP協議
自從入坑以來,只要是跟web打交道,總是免不了這個HTTP協議,這是什么鬼,讓我們一探究竟。(不周之處還請賜教!!!)
既然是協議,我們首先要問三個問題,誰跟誰的協議?協議是什么?怎么用?
第一個問題:
誰跟誰的協議?
所謂協議,至少需要兩方,甲方and乙方,我們先說下甲方and乙方到底是誰,粗俗的理解,甲方就是我們用的瀏覽器客戶端,乙方就是服務器--(可以先這樣理解---存儲你想要的頁面的地方),http協議就是他們倆要遵守的協議。
第二個問題:
協議是什么?
還是要俗,比如說你去超市買東西,你跟售貨員說來一瓶罐裝可口可樂,注意這里面有三個元素(你,可口可樂,售貨員),你跟售貨員之間就遵循了一份協議。而可口可樂就是這份協議當中的一份內容,你說要罐裝的可口可樂,售貨員就給你拿一罐罐裝的可口可樂,你說要紅茶,售貨員肯定給你拿紅茶而不是其他的東西,這就是是http協議,它定義了你的請求格式,也定義了服務器的返回格式。你的請求格式:(一瓶,罐裝,可口可樂可樂),如果售貨員有的話-格式(有,一瓶,罐裝,可口可樂),如果沒有的話--格式(沒有)。
官方語言:
HTTP是hypertext transfer protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器與WEB服務器之間交換數據的過程。客戶端連上web服務器后,若想獲得web服務器中的某個web資源,需遵守一定的通訊格式,HTTP協議用於定義客戶端與web服務器通迅的格式。
第三個問題:
怎么用?
http協議就是瀏覽器客戶端跟服務器之間的協議,你想要訪問一個頁面,而頁面存儲在服務器,你得向服務器要,而怎么要就是你(也就是甲方)要遵循的協議,舉個例子說明
第一個紅色框框:GET是你請求資源的方式,/JavaWebDemoProject/Web/1.jsp----- 你要請求的頁面,HTTP/1.1----http協議的版本,
第二個紅色框框:accept:瀏覽器通過這個頭告訴服務器,它所支持的數據類型
Accept-Charset: 瀏覽器通過這個頭告訴服務器,它支持哪種字符集
Accept-Encoding:瀏覽器通過這個頭告訴服務器,支持的壓縮格式
Accept-Language:瀏覽器通過這個頭告訴服務器,它的語言環境
Host:瀏覽器通過這個頭告訴服務器,想訪問哪台主機
If-Modified-Since: 瀏覽器通過這個頭告訴服務器,緩存數據的時間
Referer:瀏覽器通過這個頭告訴服務器,客戶機是哪個頁面來的 防盜鏈
Connection:瀏覽器通過這個頭告訴服務器,請求完后是斷開鏈接還是何持鏈接
既然我們已經發出請求了,剩下的就是服務器的回應了。
第一個紅色框框:http/1.1還是http協議的版本號,200是狀態碼--指的是對你的請求做出的回應 OK返回狀態的原因,常見的狀態碼貼上:
第二個紅色框框:告訴你的瀏覽器返回內容的類型啊,格式啊,字符編碼啊,大小啊還有服務器的的一些基本信息啊這些東西吧,不做過多的解釋了。
第三個紅色框框:當然就是你想要頁面的內容了,然后你的瀏覽器接收這些內容,然后以頁面的形式展現給你!
好了,http協議本人理解的就這么多了,希望對大家有幫助。