標籤:

HTTP入門

1 HTTP是什麼

超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。1960年美國人Ted Nelson構思了一種通過計算機處理文本信息的方法,並稱之為超文本(hypertext),這成為了HTTP超文本傳輸協議標準架構的發展根基。

HTTP 的作用就是指導瀏覽器和伺服器如何進行溝通。

  • 瀏覽器負責發起請求
  • 伺服器在 80 埠接收請求
  • 伺服器負責返回內容(響應)
  • 瀏覽器負責下載響應內容

2 HTTP 請求內容

請求內容格式為:

1 動詞 路徑 協議/版本

2 Key1: value1

2 Key2: value2

2 Key3: value3

2 Content-Type: application/x-www-form-urlencoded

2 Host: baidu.com

2 User-Agent: curl/7.54.0

3

4 要上傳的數據

請求內容要求為:

  1. 請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)
  2. 第三部分永遠都是一個回車(
  3. 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  4. 這裡的路徑包括「查詢參數」,但不包括「錨點」
  5. 如果你沒有寫路徑,那麼路徑默認為 /
  6. 第 2 部分中的 Content-Type 標註了第 4 部分的格式

可以看到HTTP請求總共分為四部分,只要符合內容和格式要求即可。

3 HTTP 響應內容

響應內容格式為:

1 協議/版本號 狀態碼 狀態解釋

2 Key1: value1

2 Key2: value2

2 Content-Length: 17931

2 Content-Type: text/html

3

4 要下載的內容

4 使用Chrome開發者工具查看 HTTP 請求和響應內容

首先得下載谷歌瀏覽器,然後按照下面的步驟操作

用 Chrome 發請求:

  1. 打開 Network
  2. 地址欄輸入網址,隨便一個訪問的網址,比如百度
  3. 在 Network 點擊,查看 request,點擊「view source」
  4. 如果有請求的第四部分,那麼在 FormData 或 Payload 裡面可以看到

用 Chrome 查看響應

  1. 打開 Network
  2. 地址欄輸入網址,隨便一個訪問的網址,比如百度
  3. 選中第一個響應
  4. 查看 Response Headers,點擊「view source」
  5. 你會看到響應的前兩部分
  6. 查看 Response 或者 Preview,你會看到響應的第 4 部分

5 使用 curl 命令

這裡最好用例子來說明:

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"

參數說明:

-s 不要顯示進度條

-v 顯示請求和響應

-H 添加響應頭

-- "baidu.com" 請求的網址

curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"

參數說明(重複參數不說明):

-X POST 請求方式為post

curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"

參數說明(重複參數不說明):

-d 「1234567890」上傳的參數


推薦閱讀:

用 http 數據加密和 https 有什麼區別?
一個網頁的漂洋過海之旅:傳輸
Logtail技術分享(一) : Polling + Inotify 組合下的日誌保序採集方案
關於ajax請求的安全,如何避免csrf類似的攻擊?
瀏覽器HTTP緩存機制

TAG:HTTP |