2.請求頭
3.請求主體
3.http協議的響應
http協議是建立在tcp/ip協議之上應用層協議,預設埠為80,8080
http協議主要主要分為三部分
請求行、請求頭、請求體
第一行,包含三個資訊:請求方式,url,http協議版本
區別:
get,引數url可見;
post,url引數不可見 (可通過抓包獲取)
get,通過拼接url進行傳遞引數
post,通過body體傳輸引數(post傳參使用&連線)
get請求是可以快取的
post請求不可以快取
get請求頁面後退時,不產生影響
post請求頁面後退時,會重新提交請求
get一般傳輸資料大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)
post請求傳輸資料的大小根據php.ini 配置檔案設定,也可以無限大。
這個也是最不好分析的,原則上post肯定要比get安全,畢竟傳輸引數時url不可見,但也擋不住部分人閒的沒事在那抓包玩。安全性個人覺得是沒多大區別的,防君子不防小人就是這個道理。對傳遞的引數進行加密,其實都一樣。
get產生乙個tcp資料報;post產生兩個tcp資料報。
對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);
而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。
get 請求
connection: keep-alivepost 請求
***=man&name=professional
user-agent: firefox//表示傳送請求的瀏覽器(請求**端)是firefox
host: shop.
100.com//表示請求的主機網域名稱(基於網域名稱的虛擬主機就是靠這個頭判斷的)
cookie:name=itcast//瀏覽器攜帶的cookie資料。
content-length:
40connection: keep-alive
請求頭資訊,需要使用乙個空行結束
請求**端項伺服器端,傳送的請求資料!
典型的就是post形式傳送的表單資料!
get請求,沒有請求主體部分!get資料是在請求行中的url(即**)上進行傳遞的!
響應包括:響應行、響應頭、響應體
響應行包括:協議版本、狀態碼、狀態訊息
典型的:
1xx:訊息
2xx:成功
3xx:請求被重定向
4xx:瀏覽器端錯誤
5xx:伺服器端錯誤
典型:**
500 伺服器內部錯誤
404 請求的頁面沒有找到
403 沒有許可權
200 請求成功**
4開頭一般是客戶端出現的問題
5開頭一般是服務端出現的問題
關於響應狀態碼,詳細參考
響應狀態碼
content-type: text/html 內容型別,告知瀏覽器接下來傳送的響應主體資料是什麼格式!
content-length: 響應主體資料的長度!
date: 響應的時間。gmt時間!
主要的響應資料,在瀏覽器的主體區域顯示的資料都是相應主體!
每行包括相應行和響應頭,都需要乙個 \r\n結尾
本篇參考
簡單總結一下http的學習,希望可以幫到您
師承上官可程式設計,陳立臣
HTTP協議簡介
現在web發展如火如荼,web開發人員也越來越多,但有幾個對支援web的http協議有了解呢?底層協議基礎不紮實,高層應用是很難做到極致的。帶著好奇心,開始學習吧!http hypertext transfer protocol 即超文字傳輸協議,是瀏覽器和伺服器之間互相通訊的一種約定,通過網際網路...
HTTP協議 簡介
全稱為超文字傳輸協議 hypertext transfer protocol 設計之初是為了將超文字標記語言 html 文件從web伺服器傳送到客戶端的瀏覽器。現在http的作用已不侷限於html的傳輸。url url示例 解釋 scheme 指定低層使用的協議 例如 http,https,ftp ...
http協議簡介
摘要 本文 go web程式設計 一書,覺得說的比較好,特轉過來收藏。我們平時瀏覽網頁的時候,會開啟瀏覽器,輸入 後按下回車鍵,然後就會顯示出你想要瀏覽的內容。在這個看似簡單的使用者行為背後,到底隱藏了些什麼呢?對於普通的上網過程,系統其實是這樣做的 瀏覽器本身是乙個客戶端,當你輸入url的時候,首...