HTTP入門基礎(chǔ)

HTTP

  • 瀏覽器負(fù)責(zé)發(fā)起請求
  • 服務(wù)器在 80 端口接收請求
  • 服務(wù)器負(fù)責(zé)返回內(nèi)容(響應(yīng))
  • 瀏覽器負(fù)責(zé)下載響應(yīng)內(nèi)容

HTTP 的作用就是指導(dǎo)瀏覽器和服務(wù)器如何進(jìn)行溝通光涂。

請求示例

用 curl 創(chuàng)造一個請求,并得到響應(yīng)

請求內(nèi)容為

> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.55.0
> Accept: */*
> Frank: xxx
>

這是向百度服務(wù)器發(fā)起請求知残,獲取根目錄,使用協(xié)議HTTP1.1婿屹,User-Agent表示用的什么軟件發(fā)起請求撬陵,這里是用curl的 7.55.0版本。Accept: /表示接收所有溢十。Frank: xxx無意義,表示在這個位置可添加內(nèi)容达吞。

POST請求

請求內(nèi)容為

> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.55.0
> Accept: */*
> Frank: xxx
>

變了個POST

加數(shù)據(jù)的POST請求

加數(shù)據(jù)的POST請求

多了上傳內(nèi)容的長度张弛,上傳的格式

請求格式

1 動詞 路徑 協(xié)議/版本
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 要上傳的數(shù)據(jù)
07.png

請求的格式

  1. 請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)
  2. 第三部分永遠(yuǎn)都是一個回車(\n)
  3. 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  4. 這里的路徑包括「查詢參數(shù)」乌庶,但不包括「錨點」
  5. 如果你沒有寫路徑种蝶,那么路徑默認(rèn)為 /
  6. 第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式

curl -s -v -- "https://www.baidu.com/s?wd=JavaScript#4"

路徑包括「查詢參數(shù)」,但不包括「錨點」

用 Chrome 發(fā)請求

打開 Network
地址欄輸入網(wǎng)址
在 Network 點擊瞒大,查看 request螃征,點擊「view source」
Chrome中查看 HTTP 請求內(nèi)容

登陸一個賬號試試, 勾上Preserve log,可以在FormData看到第四部分請求。

POST請求

響應(yīng)

前面的請求示例迅耘,前兩個請求對應(yīng)的響應(yīng)分別為

< 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: Fri, 10 Aug 2018 13:21:13 GMT
< Etag: "58860415-98b"
< Last-Modified: Mon, 23 Jan 2017 13:24:37 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
{ [1040 bytes data]
* Connection #0 to host www.baidu.com left intact
< HTTP/1.1 302 Found
< Connection: Keep-Alive
< Content-Length: 17931
< Content-Type: text/html
< Date: Fri, 10 Aug 2018 13:22:14 GMT
< Etag: "54d9749e-460b"
< Server: bfe/1.0.8.18
<
{ [3824 bytes data]
* Connection #0 to host www.baidu.com left intact

響應(yīng)的格式

1 協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋
2. Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下載的內(nèi)容
  • 狀態(tài)碼要背,是服務(wù)器對瀏覽器說的話
    • 1xx消息 不常用
    • 2xx成功 表示成功
    • 3xx重定向 表示滾吧
    • 4xx客戶端錯誤 表示你丫錯了
    • 5xx服務(wù)器錯誤 表示好吧魄藕,我錯了
  • 狀態(tài)解釋沒什么用
  • 第 2 部分中的 Content-Type 標(biāo)注了第 4 部分的格式
  • 第 2 部分中的 Content-Type 遵循 MIME 規(guī)范

具體HTTP狀態(tài)碼說明,HTTP狀態(tài)碼

Chrome中查看 HTTP 響應(yīng)內(nèi)容
第四部分在這里

如何使用 curl 命令

常見curl 命令
-v/--verbose 小寫的v參數(shù)撵术,用于打印更多信息背率,包括發(fā)送的請求信息,這在調(diào)試腳本是特別有用嫩与。
-m/--max-time <seconds> 指定處理的最大時長
-H/--header <header> 指定請求頭參數(shù)
-s/--slient 減少輸出的信息寝姿,比如進(jìn)度
--connect-timeout <seconds> 指定嘗試連接的最大時長
-x/--proxy <proxyhost[:port]> 指定代理服務(wù)器地址和端口,端口默認(rèn)為1080
-T/--upload-file <file> 指定上傳文件路徑
-o/--output <file> 指定輸出文件名稱
-d/--data/--data-ascii <data> 指定POST的內(nèi)容
--retry <num> 指定重試次數(shù)
-e/--referer <URL> 指定引用地址
-I/--head 僅返回頭部信息划滋,使用HEAD請求

可以使用explainshell.com查看參數(shù)含義
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饵筑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子处坪,更是在濱河造成了極大的恐慌根资,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件同窘,死亡現(xiàn)場離奇詭異玄帕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)塞椎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門桨仿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睛低,“玉大人案狠,你說我怎么就攤上這事∏祝” “怎么了骂铁?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罩抗。 經(jīng)常有香客問我拉庵,道長,這世上最難降的妖魔是什么套蒂? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任钞支,我火速辦了婚禮茫蛹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烁挟。我一直安慰自己婴洼,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布撼嗓。 她就那樣靜靜地躺著柬采,像睡著了一般。 火紅的嫁衣襯著肌膚如雪且警。 梳的紋絲不亂的頭發(fā)上粉捻,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音斑芜,去河邊找鬼肩刃。 笑死,一個胖子當(dāng)著我的面吹牛杏头,可吹牛的內(nèi)容都是我干的树酪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼大州,長吁一口氣:“原來是場噩夢啊……” “哼续语!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厦画,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疮茄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后根暑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體力试,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年排嫌,在試婚紗的時候發(fā)現(xiàn)自己被綠了畸裳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡淳地,死狀恐怖怖糊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情颇象,我是刑警寧澤伍伤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站遣钳,受9級特大地震影響扰魂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一劝评、第九天 我趴在偏房一處隱蔽的房頂上張望姐直。 院中可真熱鬧,春花似錦蒋畜、人聲如沸简肴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砰识。三九已至,卻和暖如春佣渴,著一層夾襖步出監(jiān)牢的瞬間辫狼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工辛润, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留膨处,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓砂竖,卻偏偏與公主長得像真椿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乎澄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容