HTTP入門(請求與響應的基本知識)

摘要:本文主要介紹HTTP的最基本的知識声滥,包括request請求呜叫、response響應、常見的響應狀態(tài)碼怠李、GET請求與POST請求的區(qū)別圾叼。

一、HTTP 請求

1. http請求操作/curl命令

  • curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"http://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"http://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"http://POST上傳帶數據
    請求內容
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
yyy: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

1234567890

注:第二部分中捺癞,至少需要有Host夷蚊、Content-LengthContent-Type

2. 綜上所得髓介,請求一共包含以下部分

  • 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 要上傳的數據

  • 其中需要注意的是

    1. 請求最多包含四部分惕鼓,最少包含三部分,即第四部分數據可以為空唐础。
    2. 第三部分永遠都是一個回車箱歧,用來分隔第二矾飞、第四部分。
    3. 第一部分的動詞包括GET(獲妊叫稀)/POST(上傳洒沦,新增)/PUT(整體更新)/PATCH(局部更新)/DELETE(刪除)/HEAD(獲取資源的元數據)/OPTIONS(獲取信息,關于資源的哪些屬性是客戶端可以改變的)等价淌。
    4. 如果沒有寫路徑申眼,則默認為根目錄(即 /
    5. 第二部分中的的 Content-Type 標注了第 4 部分的格式
    6. 第一部分的路徑,包含查詢參數蝉衣,但不包括錨點

3. 使用Chrome瀏覽器查看http請求

  1. 打開 控制臺中的Network面板
  2. 地址欄輸入網址
  3. 在 Network 點擊括尸,查看 request,點擊「view source」
  4. 如果有請求的第四部分买乃,那么在 FormData 或 Payload 里面可以看到

舉例說明(百度首頁請求):

百度首頁請求

二姻氨、HTTP 響應

1.http響應出現在請求結束后

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"http://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>
<html lang="en">
………………以下為網頁html代碼,略…………
</html>

2. http響應包含以下部分

  • 1 協議/版本號 狀態(tài)碼 狀態(tài)解釋
    2 Key1: value1
    2 Key2: value2
    2 Content-Length: 17931
    2 Content-Type: text/html
    3
    4 要下載的內容
  • 其中需要注意的是
    第 2 部分中的 Content-Type 標注了第 4 部分的格式
    第 2 部分中的 Content-Type 遵循 MIME 規(guī)范
    第一部分的狀態(tài)解釋沒什么用

3. 關于響應的狀態(tài)碼

  • 1xx消息:代表請求已被接受剪验,需要繼續(xù)處理肴焊。這類響應是臨時響應,只包含狀態(tài)行和某些可選的響應頭信息功戚,并以空行結束娶眷。(不常用,大致知道即可)

  • 2XX:表示成功

    • 200 OK:請求已成功啸臀,請求所希望的響應頭或數據體將隨此響應返回届宠。
    • 204 No Content:表示請求已成功處理,但是沒有內容返回乘粒,意思等同于請求執(zhí)行成功豌注,但是沒有數據,瀏覽器不用刷新頁面灯萍,也不用導向新的頁面轧铁。
    • 206 Partial Content:服務器已經成功處理了部分GET請求。(客戶端進行了范圍請求) 響應報文中包含Content-Range指定范圍的實體內容旦棉。
  • 3XX:重定向

    • 301 Moved Permanently:表示訪問的資源被永久移除齿风,即請求的資源已經永久的搬到了其他位置 。
    • 302 Found :表示所訪問的資源臨時被移除绑洛,以后還會回來救斑,即臨時重定向,表示請求的資源臨時搬到了其他位置 真屯。
    • 303 See Other :表示請求資源存在另一個URI脸候,應使用GET定向獲取請求資源 。
    • 304 Not Modified :表示資源未被修改,即客戶端仍然具有以前下載的副本纪他,不需要重新傳輸資源鄙煤。
    • 307 Temporary Redirect:臨時重定向,和302有著相同含義 茶袒,盡管302標準禁止POST變?yōu)镚ET梯刚,但沒人聽他的 ,而307就會遵照標準薪寓,不會從POST變?yōu)镚ET
      但處理響應行為亡资,各個瀏覽器可能不同。
  • 4XX:客戶端錯誤

    • 400 Bad Request:表示請求報文存在語法錯誤或參數錯誤向叉,服務器不理解 锥腻,服務器不應該重復提交這個請求 ,需要修改請求內容后再次發(fā)送母谎。
    • 401 Unauthorized:表示發(fā)送的請求需要有HTTP認證信息或者是認證失敗了 瘦黑,返回401的響應必須包含一個適用于被請求資源的WWW-Authenticate首部以質詢用戶信息 ,瀏覽器初次接受401時奇唤,會彈出認證窗口幸斥。
    • 403 Forbidden :表示對請求資源的訪問被服務器拒絕了 ,服務器可以對此作出解釋咬扇,也可以不解釋 甲葬,想說明的話可以在響應實體的主體部分描述原因 。比如說你可能沒有訪問權限懈贺。
    • 404 Not Found:表示服務器找不到你請求的資源 经窖,但允許用戶的后續(xù)請求。
  • 5XX:服務器錯誤

    • 500 Internal Server Error:通用錯誤消息梭灿,服務器遇到了一個未曾預料的狀況画侣,導致了它無法完成對請求的處理。沒有給出具體錯誤信息堡妒。
    • 502 Bad Gateway:作為網關或者代理工作的服務器嘗試執(zhí)行請求時棉钧,從上游服務器接收到無效的響應。
    • 503 Service Unavailable:表示服務器超負載或正停機維護涕蚤,無法處理請求 ,如果服務器知道還需要多長時間的诵,就寫入Retry-After首部字段返回万栅。

4. 使用Chrome瀏覽器查看http響應

  1. 打開 Network
  2. 輸入網址
  3. 選中第一個響應
  4. 查看 Response Headers,點擊「view source」
  5. 你會看到響應的前兩部分
  6. 查看 Response 或者 Preview西疤,你會看到響應的第 4 部分

舉個例子:百度首頁響應代碼

百度首頁響應代碼

三烦粒、GET 和 POST 的區(qū)別是什么

這是一個很常見的面試題,我這里總結的答案是:

  • 參數。GET 的參數放在 url 的查詢參數里扰她,POST 的參數(數據)放在請求消息體里兽掰。
  • 安全GET 沒有 POST 安全(當然實際上二者都沒有那么的安全)徒役。因為GET請求很容易偽造(比如<a>孽尽、<img><link>忧勿、<script>杉女、<form>標簽都可以發(fā)送GET請求)。
  • 數據長度鸳吸。GET 的參數(url查詢參數)有長度限制熏挎,一般是 1024 個字符。POST 的參數(數據)沒有長度限制(話雖這么說晌砾,但實際POST還是有4~10Mb 的限制坎拐,但是相對于GET已經大多了)
  • 。GET 請求只需要發(fā)一個包养匈,POST 請求需要發(fā)兩個以上包(因為 POST 有消息體)(雖然GET 也可以用消息體但是不常用)
  • 作用哼勇。GET 用來讀數據,POST 用來寫數據乖寒,POST 不冪等(冪等的意思就是不管發(fā)多少次請求猴蹂,結果都一樣。)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末楣嘁,一起剝皮案震驚了整個濱河市磅轻,隨后出現的幾起案子,更是在濱河造成了極大的恐慌逐虚,老刑警劉巖聋溜,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異叭爱,居然都是意外死亡撮躁,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門买雾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來把曼,“玉大人,你說我怎么就攤上這事漓穿∴途” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵晃危,是天一觀的道長叙赚。 經常有香客問我老客,道長,這世上最難降的妖魔是什么震叮? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任胧砰,我火速辦了婚禮,結果婚禮上苇瓣,老公的妹妹穿的比我還像新娘尉间。我一直安慰自己,他們只是感情好钓简,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布乌妒。 她就那樣靜靜地躺著,像睡著了一般外邓。 火紅的嫁衣襯著肌膚如雪撤蚊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天损话,我揣著相機與錄音侦啸,去河邊找鬼。 笑死丧枪,一個胖子當著我的面吹牛光涂,可吹牛的內容都是我干的。 我是一名探鬼主播拧烦,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼忘闻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恋博?” 一聲冷哼從身側響起齐佳,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎债沮,沒想到半個月后炼吴,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡疫衩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年硅蹦,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闷煤。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡童芹,死狀恐怖,靈堂內的尸體忽然破棺而出鲤拿,到底是詐尸還是另有隱情辐脖,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布皆愉,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏幕庐。R本人自食惡果不足惜久锥,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望异剥。 院中可真熱鬧瑟由,春花似錦、人聲如沸冤寿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽督怜。三九已至殴瘦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間号杠,已是汗流浹背蚪腋。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姨蟋,地道東北人屉凯。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像眼溶,于是被迫代替她去往敵國和親悠砚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容