http協議內容有兩部分
一、 HTTP Header
二、 HTTP Body
千萬要注意,不要和HTML搞混了。ajax
Header除了第一行以外,就是一些Key-Value的屬性設置
Key: Value瀏覽器
Body你均可以看作是二進制數據。只是根據Content-Type的不一樣作不一樣處理。緩存
HTTP請求流程服務器
Request(請求) -> 服務器
Response(響應) <- 服務器tcp
圖1.
HTTP METHOD:
1. GET
2. POST
3. PUT 常見於RESTful
4. DELETE 常見於RESTful
5. HEAD
6. OPTION編碼
Requesturl
會把queryString(也被稱做http parameter) ?key1=value1&key2=value2&key3=value3
接到url後面
優點:
簡單。spa
劣勢:
一、url長度有限(256個字符)
二、保密性極差(明文)code
會把queryString寫到httpBody裏面
圖2.
orm
看見HTTP頭和HTTP Body當中有一個空白行分割
全部的數據寫在http body中。
優點:
1. 保密性好。
2. 能夠傳較多數據。(只要指定Content-Length屬性)
劣勢:
麻煩
Response
HTTP頭: 狀態碼(404 500 200 304) body長度(Content-Length) 緩存控制(給瀏覽器用) 數據編碼 請求的數據 等等。
關於數據的屬性,都在Http Header裏(是否GZIP壓縮,文本編碼之類的)。
數據自己就在HttpBody裏。
特殊的狀況:
Request你也能夠往body裏面傳文件(並且能夠是多個文件)。
一、multipart/form-data (Content-Type)
二、boundary的概念