HTTP學習筆記

1、WWW概念WWW(World Wide Web),主要包括三部分概念
URI,俗稱網址
HTTP,兩個電腦之間傳輸內容的協議
HTML,超級文本,主要用來作頁面跳轉
解釋:URL 的做用是能讓你訪問一個頁面,HTTP 的做用是讓你能下載這個頁面,HTML 的做用是讓你能看懂這個頁面。html

URI 是什麼
概念:統一資源標識符(英語:Uniform Resource Identifier,縮寫URI)
URI 分爲 URL 和 URN,咱們通常使用 URL 做爲網址。數據庫

URN是什麼
概念:統一資源名稱(英語:Uniform Resource Name,縮寫URN)瀏覽器

URL是什麼
概念:統一資源定位符(英語:Uniform Resource Locator,縮寫URL)服務器

DNS是什麼
網域名稱系統(英語:Domain Name System,縮寫:DNS)是互聯網的一項服務。它做爲將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便地訪問互聯網。DNS使用TCP和UDP端口53[1]。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。app

2、請求與響應
2.1http做用
HTTP 的做用就是指導瀏覽器和服務器如何進行溝通。
瀏覽器負責發起請求
服務器在 80 端口接收請求
服務器負責返回內容(響應)
瀏覽器負責下載響應內容dom

2.2請求示例
Git Bash命令行執行後,請求內容爲:
-s顯示進度
-v完整的顯示請求和響應
-H添加請求頭curl

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
【GET請求內容】
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx


curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"
【POST請求內容】
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx


curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
【POST帶數據請求內容】
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
//注意此處是空行
1234567890

2.3請求內容格式示例分佈式

1 動詞 路徑 協議/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上傳的數據
注:請求第二部分有多行內容,格式爲 Key?: value?ide

0 請求最多包含四部分,最少包含三部分。(也就是說第四部分能夠爲空)
1 第三部分永遠都是一個回車(n)
2 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等ui

GET  獲取
POST 新增/上傳
PUT  總體更新
PATCH局部更新

3 這裏的路徑包括「查詢參數」,但不包括「錨點」
4 若是你沒有寫路徑,那麼路徑默認爲 /
5 第 2 部分中的 Content-Type 標註了第 4 部分的格式

2.4響應內容格式示例
1 協議/版本號 狀態碼 狀態解釋
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下載的內容

狀態碼要背,是服務器對瀏覽器說的話
1xx 不經常使用
2xx 表示成功【表示請求已成功被服務器接收、理解、並接受】
3xx 表示滾吧【重定向,須要客戶端採起進一步的操做才能完成請求】
4xx 表示你丫錯了【客戶端錯誤】
5xx 表示好吧,我錯了【服務器錯誤】
狀態解釋沒什麼用
第 2 部分中的 Content-Type 標註了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 規範

GET請求響應內容
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
<!--STATUS OK--><html> <head> 後面太長,省略了……


POST請求響應內容
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:19:47 GMT
Etag: "54d9749e-460b"
Server: bfe/1.0.8.18

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 後面太長,省略了……

注:
一、GET 請求和 POST 請求對應的響應能夠同樣,也能夠不同
二、響應的第四部分能夠很長很長很長

2.5使用Chrome查看請求
打開 Network
地址欄輸入網址
在 Network 點擊,查看 request,點擊「view source」
點擊「view source」
點擊「view source」
點擊「view source」
終於點了?能夠看到請求的前三部分了
若是有請求的第四部分,那麼在 FormData 或 Payload 裏面能夠看到
2.6使用Chrome查看響應打開 Network輸入網址選中第一個響應查看 Response Headers,點擊「view source」你會看到響應的前兩部分查看 Response 或者 Preview,你會看到響應的第 4 部分

相關文章
相關標籤/搜索