目錄
前言
HTTP請求報文格式
一. 請求行
HTTP請求方法
GET和POST的區別
URL
二. 請求頭
常見的Header
常見的額請求體數據類型
三. 請求體
結束語
前言
HTTP是應用層的一個協議。實際我們訪問一個網頁,都會像該網頁的服務器發送HTTP請求,服務器解析HTTP請求,返回HTTP響應。如此就是我們獲取資源或者上傳資源的原理
HTTP請求報文格式
圖片來自網絡
HTTP請求報頭總體有四部分:
- 請求行:有三部分:請求方法,URL,協議版本。彼此用空格分隔
- 請求頭:KV形式的輔助信息
- 空行:分隔報頭(請求行+請求頭)和有效載荷(請求體);由回車符,換行符組成,即\r\n
- 請求體:請求發送時攜帶的數據。數據類型Content-Type的值
一. 請求行
HTTP請求方法
方法 | 說明 | 支持的HTTP協議版本 |
GET | 獲取資源 | 1.0,1.1 |
POST | 傳輸實體主體(提交信息) | 1.0,1.1 |
PUT | 傳輸文件 | 1.0,1.1 |
HEAD | 獲得報文首部 | 1.0,1.1 |
DELETE | 刪除文件 | 1.0,1.1 |
OPTIONS | 詢問支持的方法 | 1.1 |
TRACE | 追蹤路徑 | 1.1 |
CONNECT | 要求用隧道協議連接代理 | 1.1 |
LINK | 建立和資源之間的聯系 | 1.0 |
UNLINE | 斷開連接關系 | 1.0 |
其中,最常用的是GET和POST
GET和POST的區別
雖然GET主要作用是獲取資源,但也可以提交數據。
兩者提交數據的區別是
GET提交的數據會放到url中,以field(字段)= value的形式,置于URL之后,用?分隔前者和請求數據,請求數據間用&分隔。這樣密碼等數據用戶是可見的
POST提交的數據會放到請求體中,該過程用戶是不可見的
GET傳輸的數據量小,只傳輸文本,長度為1024字節,因為受URL長度限制,但效率較高
POST可以傳輸大量數據,所以上傳文件時只能用post方法
GET方法上傳數據,是比較不安全的,POST的安全性比GET較高
URL
可以參看URL概念及組成
二. 請求頭
請求頭(Header)都是以KV方式存放,彼此之間用\r\n分隔。
常見的Header
- Host:客戶端的主機IP和端口號
- Connection:連接方式,常見為keep-alive,持久連接。報文可能無法一次性發送完,如果沒有keep-alive,每一次發送都要建立一次連接
- User-Agent:包含客戶端操作系統,系統引擎版本,瀏覽器信息。簡單過濾一些爬蟲訪問
- Content-Type:請求體的數據類型
常見的額請求體數據類型
text/html | HTML格式 |
text/plain | 純文本格式 |
image/jpeg | jpg圖片格式 |
application/json | JSON數據格式 |
三. 請求體
請求發送時攜帶的數據。數據類型Content-Type的值
請求方法為POST和PUT時,請求體就是要上傳的數據
GET和DELETE沒有請求體
結束語
本篇博客到此結束,感謝看到此處。
歡迎大家糾錯和補充
如果覺得本篇文章對你有所幫助的話,不妨點個贊支持一下博主,拜托啦,這對我真的很重要。