HTTP入門筆記

HTTP Protocol 1.1

例子

  1. 客戶端調用接口 ( Client Server )
  2. 輸入URL後,瀏覽器到底作了些什麼
  3. ajax
  4. 瀏覽器緩存.....
    都與http協議有關。

http協議的基本組成。

  1. http是基於tcp協議的(特徵是:一、有三次握手即有鏈接過程 二、無狀態 三、...)

http協議內容有兩部分
一、 HTTP Header
二、 HTTP Body
千萬要注意,不要和HTML搞混了。ajax

Header除了第一行以外,就是一些Key-Value的屬性設置
Key: Value瀏覽器

Body你均可以看作是二進制數據。只是根據Content-Type的不一樣作不一樣處理。緩存

HTTP請求流程服務器

Request(請求) -> 服務器
Response(響應) <- 服務器tcp

圖1.
HTTP頭
HTTP METHOD:
1. GET
2. POST
3. PUT 常見於RESTful
4. DELETE 常見於RESTful
5. HEAD
6. OPTION編碼

Requesturl

基於URL的請求特徵 (經常使用於GET)

會把queryString(也被稱做http parameter) ?key1=value1&key2=value2&key3=value3 接到url後面
優點:
簡單。spa

劣勢:
一、url長度有限(256個字符)
二、保密性極差(明文)code

基於HttpBody的請求特徵 (經常使用於POST)

會把queryString寫到httpBody裏面
圖2.
POST請求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的概念
HTTP上傳文件

相關文章
相關標籤/搜索