HTTP入門

1.什麼是HTTP?

HTTP(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最爲普遍的一種網絡傳輸協議,全部的WWW文件都必須遵照這個標準。linux

HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。瀏覽器

2.HTTP的工做原理是什麼?是作什麼用的?

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

簡單的工做原理是:cookie

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

注意:

  1. HTTP是無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
  2. HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據均可以經過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。(更多關於的MIME-type內容類型的信息,本身搜索)
  3. HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。

3.HTTP 請求包括哪些部分?如何用Chrome開發者工具查看 HTTP 請求內容?

請求的格式:

第一部分:動詞 路徑 協議/版本
第二部分:Key1: value1
                 Key2: value2
                 ... ...
                 Key n: value n
第三部分:
第四部分:要上傳的數據網絡

注意:

  1. 請求最多包含四部分,最少包含三部分。(也就是說第四部分能夠爲空)
  2. 第三部分永遠都是一個回車(\n),用來區分第二部分和第四部分
  3. 動詞也是請求方法,有 GETPOST、PUT、PATCH、DELETE、HEAD、OPTIONS 等 (HTTP1.1)
  • GET: 從服務器獲取內容
  • POST: 向服務器新增,上傳內容
  • PUT: 總體更新,新上傳的內容覆蓋以前上傳的全部內容
  • PATCH: 局部更新,將以前上傳的部份內容替換爲新上傳的內容
  • DEMETE: 刪除
  • HEAD: 相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
  • OPTIONS: 容許客戶端查看服務器的性能。

       咱們實際應用中經常使用到的只有 GETPOST,發出的請求包含數據就用 POST,不包含數據就用 GETcurl

  1. 這裏的路徑必須以 / 開頭,它包括「查詢參數」,但不包括「錨點」。若是你沒有寫路徑,那麼路徑默認爲 /
    工具

  2. 第 2 部分中的 Content-Type 標註了第 4 部分的格式性能

使用Chrome開發者工具查看 HTTP 請求內容

  1. 打開 瀏覽器
  2. 右鍵空白處,點擊 [檢查]
  3. 點擊上面一排中的 [Network]
  4. 地址欄輸入網址,回車,在 Network 中會出現不少請求,點擊請求的名稱。
  5. 點擊 [Request Headers],點擊 [view source],你就會看到請求的前三部分。
  6. 若是有請求的第四部分,那麼在 FormData 或 Payload 裏面能夠看到。

4.HTTP 響應包括哪些部分,如何用Chrome開發者工具查看 HTTP 響應內容?

響應的格式:

第一部分: 協議/版本號 狀態碼 狀態解釋
第二部分:Key1: value1
                 Key2: value2
                 ... ...
                 Key n: value n
第三部分:
第四部分:要下載的內容測試

注意:

  1. 狀態碼要背,是服務器對瀏覽器說的話
        - 1xx: 表示信息,服務器收到請求,須要請求者繼續執行操做,不經常使用
        - 2xx: 表示成功,操做被成功接收並處理;200:普通成功(GET) 204:建立成功(POST)
        - 3xx: 表示重定向,須要進一步的操做以完成請求;301:永久的搬走了,第二部分會給個location:是搬過去的地                   址 302:臨時的不存在 304:這一次的內容和上一次的內容同樣
        - 4xx: 表示客戶端錯誤,請求包含語法錯誤或沒法完成請求 404
        - 5xx: 表示服務器錯誤,服務器在處理請求的過程當中發生了錯誤 50二、500
    更多的狀態碼點這裏
  2. 狀態解釋沒什麼用
  3. 第 2 部分中的 Content-Type 標註了第 4 部分的格式
  4. 第 2 部分中的 Content-Type 遵循 MIME 規範

如何用Chrome開發者工具查看 HTTP 響應內容

  1. 打開 瀏覽器
  2. 右鍵空白處,點擊 [檢查]
  3. 點擊上面一排中的 [Network]
  4. 地址欄輸入網址,回車,在 Network 中會出現不少請求,點擊請求的名稱。
  5. 點擊 [Responses Headers],點擊 [view source],你就會看到響應的前三部分。
  6. 響應的第四部分在 Responses 裏面能夠看到。

如何使用 curl 命令

curl命令是一個利用URL規則在命令行下工做的文件傳輸工具。它支持文件的上傳和下載,因此是綜合傳輸工具,但按傳統,習慣稱curl爲下載工具。做爲一款強力工具,curl支持包括HTTP、HTTPS、ftp等衆多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特徵。作網頁處理流程和數據檢索自動化,curl能夠祝一臂之力。網絡傳輸協議

語法:curl(選項)-- "請求的網址" (注意 -- 後有一個空格)

選項:此處僅僅舉例,更多內容點這裏

  1. -a : 上傳文件時,附加到目標文件
  2. -d : HTTP POST方式傳送數據
  3. -G : 以get的方式來發送數據
  4. -H : 自定義頭信息傳遞給服務器
  5. -s : 靜默模式。不輸出任何東西
  6. -v : 使提取更加冗長/囉嗦。主要用於調試。
  7. -X : 指定什麼命令
    ... ...

使用
curl命令能夠用來執行下載、發送各類HTTP請求,指定HTTP頭部等操做。若是系統沒有curl可使用yum install curl安裝,也能夠下載安裝。curl是將下載文件輸出到stdout,將進度信息輸出到stderr,不顯示進度信息使用--silent選項。對於測試來說,它是Web相關測試很是實用的工具,包括debugging,使用起來很是方便。


這只是HTTP入門,還有不少知識本文沒有提到,後期會繼續補充,若是本文對你有幫助,請推薦給更多須要幫助的人。

相關文章
相關標籤/搜索