http協議簡單了解

2021-10-18 07:04:15 字數 2547 閱讀 7093

http協議是建立在tcp/ip協議之上應用層協議,預設埠為80,8080

http協議的的特點是無狀態,無連線

利用抓包工具httpwatch可以獲取報文

http協議的報文傳輸的是ascii碼,在tcp/ip協議之上,主要主要分為三部分

請求行、請求頭、請求體

第一行,包含三個資訊:請求方式,url,http協議版本

get 請求

connection: keep-alivepost 請求

***=man&name=professional區別:

1、url可見性:

get,引數url可見;

post,url引數不可見 

2、資料傳輸上:

get,通過拼接url進行傳遞引數;

post,通過body體傳輸引數

3、快取性:

get請求是可以快取的

post請求不可以快取

4、後退頁面的反應

get請求頁面後退時,不產生影響

post請求頁面後退時,會重新提交請求

5、傳輸資料的大小

get一般傳輸資料大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)

post請求傳輸資料的大小根據php.ini 配置檔案設定,也可以無限大。

6、安全性

這個也是最不好分析的,原則上post肯定要比get安全,畢竟傳輸引數時url不可見,但也擋不住部分人閒的沒事在那抓包玩。安全性個人覺得是沒多大區別的,防君子不防小人就是這個道理。對傳遞的引數進行加密,其實都一樣。

本質區別:

get產生乙個tcp資料報;post產生兩個tcp資料報。

對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

瀏覽器向伺服器傳送一些狀態資料,標識資料等等

乙個資訊一行,包括資訊名:資訊值 按行分隔

user-agent: firefox//表示傳送請求的瀏覽器(請求**端)是firefox

host: shop.100.com//表示請求的主機網域名稱(基於網域名稱的虛擬主機就是靠這個頭判斷的)

cookie:name=itcast//瀏覽器攜帶的cookie資料。

content-length: 40

connection: keep-alive

請求**端項伺服器端,傳送的請求資料!

典型的就是post形式傳送的表單資料!

get請求,沒有請求主體部分!get資料是在請求行中的url上進行傳遞的!

content- type: text/html響應行包括:協議版本、狀態碼、狀態訊息

典型的:

1xx:訊息

2xx:成功

3xx:請求被重定向

4xx:瀏覽器端錯誤

5xx:伺服器端錯誤

典型:500 伺服器內部錯誤

404 請求的頁面沒有找到

403 沒有許可權

200 請求成功

4開頭一般是客戶端出現的問題

5開頭一般是服務端出現的問題

具體的響應碼:

content-type: text/html 內容型別,告知瀏覽器接下來傳送的響應主體資料是什麼格式!

content-length: 響應主體資料的長度!

date: 響應的時間。gmt時間!

主要的響應資料,在瀏覽器的主體區域顯示的資料都是相應主體!

注意,每行,包括相應行和響應頭,都需要乙個 \r\n結尾

可參考

http協議簡單了解

現在我們來看一下這個響應頭的乙個例子,還是只說明一些我們現在需要知道的,其他內容讀者可以自己去查詢相關的內容。在這個例子中的響應頭我們可以看到 1 在第一行就告訴瀏覽器http協議的版本是1.1,狀態碼是200,意思是ok,就是說你的請求我同意了。2 在第二行就是告知瀏覽器我伺服器的名字。4 在第四...

簡單了解http協議

客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵循一定的通訊格式,http協議用於定義客戶端與web伺服器通訊的格式。客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。乙個完整的http請求包括乙個請求行 若干請頭 以及實體內容。乙個響...

http協議的簡單了解

http協議是大家在網際網路中最為熟悉的協議,只要上網大家都會遇到,但是,很多人被問道什麼是http協議,http協議的內容是什麼就懵了。這裡,我們隨便聊聊http協議。首先,我們說說協議。我一直覺得 協議 這詞不是很好理解,協商以後達成的決議,其實,就是規定,輪不到使用者協商的規定,就像本朝的法律...