1. 程式人生 > >HTTP請求報文和響應報文(簡書)

HTTP請求報文和響應報文(簡書)

文章作者:Tyan
部落格:noahsnail.com  |  CSDN  |  簡書

1. HTTP報文

HTTP報文是由一行一行的簡單字串組成的。HTTP報文都是純文字,不是二進位制程式碼,所以人們可以很方便地對其進行讀寫。下圖是一個例子:

image

從Web客戶端發往Web伺服器的HTTP報文稱為請求報文(request message)。從伺服器發往客戶端的報文稱為響應報文(response message),此外沒有其他型別的HTTP報文。HTTP請求和響應報文的格式很類似。

HTTP 報文包括以下三個部分:

  • 起始行
    報文的第一行就是起始行,在請求報文中用來說明要做些什麼,在響應報文中說明出現了什麼情況。

  • 首部欄位
    起始行後面有零個或多個首部欄位。每個首部欄位都包含一個名字和一個值,為了便於解析,兩者之間用冒號(:)來分隔。首部以一個空行結束。新增一個首部欄位和新增新行一樣簡單。

  • 主體
    空行之後就是可選的報文主體了,其中包含了所有型別的資料。請求主體中包括 了要傳送給 Web 伺服器的資料;響應主體中裝載了要返回給客戶端的資料。起始行和首部都是文字形式且都是結構化的,而主體則不同,主體中可以包含任意 的二進位制資料(比如圖片、視訊、音軌、軟體程式)。當然,主體中也可以包含 文字。

2. HTTP請求報文

123456789GET / HTTP/1.1Connection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8,en;q=0.6Cookie: BAIDUID=4082549DEE5E64678FC46642E185D98C:FG=1; BIDUPSID=4082549DEE5E64678FC46642E185D98C; PSTM=1472215668; MCITY=-%3A; BDSFRCVID=pSFsJeCCxG3C4A5iySIze8tzxQmzvLxREDct3J; H_BDCLCKID_SF=tR38LRu8KJjEe-Kk-PnVeUFLQlbZKxJmMgkeWlbMQnTR85CGXUQVWx4_Qb6gXU-L5nT9bDOFfDL2bKKmjTL3K4LOMq5-5b0X-K5L3JD8bnjoHRjvq4bohjPy5G7eBtQm05bxohOIHRoE8M0m2ROkMtutKJjQW-nQ5HbbhCLbWDF5MIDGj50WenLHMfnXetJQ2C7WsJceHJOoDDvx0Uj5y4LdLp7xJMtJ0RT0XxOYMJKWf-c90tc05xAb04oR5b0eWJQ2QJ8BtCtKhD3P; pgv_pvi=7232093184; pgv_si=s9982430208; BDRCVFR[IzI_eUGSZP3]=mbxnW11j9Dfmh7GuZR8mvqV; BD_CK_SAM=1; PSINO=5; BD_HOME=0; H_PS_PSSID=1421_17946_21125_18559_21455_21419_21394_21378_21191_21398; BD_UPN=123253; BD_LAST_QID=17716714193052416912

解釋:

  • GET / HTTP/1.1,請求起始行

  • GET,請求方法

  • /,請求URL,命名了所請求資源,或者URL路徑元件的完整URL。如果直接與伺服器進行對話,只要URL的路徑元件是資源的絕對路徑,通常就不會有什麼問題——伺服器可以假定自己是URL的主機/埠。

  • HTTP/1.1,請求採用的協議及版本號

  • Host,請求的伺服器

  • Connection,連線方式

  • Upgrade-Insecure-Requests,

  • User-Agent,將發起請求的應用程式名稱告知伺服器

  • Accept,請求首部,是請求報文特有的。它們為伺服器提供了一些額外資訊,比如客戶端希望接收什麼型別的資料。例子中接收html,xhtml,xml等資料。

  • Accept-Encoding,告訴伺服器能夠傳送哪些編碼方式

  • Accept-Language,告訴伺服器能夠傳送哪些語言

  • Cookie,Cookie資訊,客戶端用它向伺服器傳送一個令牌——它並不是真正的安全首部,但確實隱含了安全功能

3. HTTP響應報文

123456789101112HTTP/1.1 200 OKServer: bfe/1.0.8.18Date: Thu, 03 Nov 2016 08:30:43 GMTContent-Type: text/htmlContent-Length: 277Last-Modified: Mon, 13 Jun 2016 02:50:03 GMTConnection: Keep-AliveETag: "575e1f5b-115"Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transformPragma: no-cacheAccept-Ranges: bytes

解釋:

  • HTTP/1.1 200 OK,響應狀態行

  • HTTP/1.1,訪問採用的協議為HTTP,版本為1.1

  • 200,HTTP狀態碼,表示文件正確返回

  • OK,一個描述性的原因短語

  • Server,伺服器應用程式軟體的名稱和版本

  • Date,伺服器產生響應的日期

  • Content-Type,實體中所承載物件的型別,例子中響應實體的主體是一個html文字。

  • Content-Length,所傳送實體主體的長度或大小,例子中響應實體的主體包含了277位元組的資料

  • Last-Modified,資源的最後修改日期時間

  • Connection,連線方式,close或keep-alive

  • ETag,資源的匹配資訊

  • Cache-Control,控制快取的行為

  • Pragma,報文指令

  • Accept-Ranges,是否接受位元組範圍請求

相關推薦

HTTP請求報文響應報文()

文章作者:Tyan部落格:noahsnail.com  |  CSDN  |  簡書1. HTTP報文HTTP報文是由一行一行的簡單字串組成的。HTTP報文都是純文字,不是二進位制程式碼,所以人們可以很方便地對其進行讀寫。下圖是一個例子:從Web客戶端發往Web伺服器的HTT

HTTP請求報文響應報文

狀態碼 技術分享 http ima cto con 例如 消息 char 請求報文 請求報文包含請求行、請求頭部、請求正文,還有空行。 請求行 由請求方法、URL和協議版本組成。 請求方法包括:GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE 協

HTTP協議淺析(中):請求報文響應報文

1. 請求報文格式 1.1 伺服器測試程式碼 伺服器測試程式碼: #include <stdio.h> #include <stdlib.h> #include <string.h>

http協議 請求報文響應報文

引用 學習Web開發不好好學習HTTP報文,將會“打拳不練功,到老一場空”,你花在犯迷糊上的時間比你沉下心來學習HTTP的時間肯定會多很多。 HTTP請求報文解剖HTTP請求報文由3部分組成(請求行+請求頭+請求體): 下面是一個實際的請求報文: ①是請求方法,GET和

HTTP協議(中):請求報文響應報文

1. 請求報文格式 1.1 伺服器測試程式碼 伺服器測試程式碼: #include <stdio.h> #include <stdlib.h> #include <string.h>

16,python實現----HTTP請求報文響應報文

import socket import re ''' 請求報文: 請求行: GET / HTTP/1.1 請求行格式: 請求方式 請求的資源路徑 HTTP版本 請求頭: Host: www.baidu.com

HTTP 請求報文響應報文的格式

HTTP 請求報文 由請求行、請求頭部、空行 和 請求包體 4 個部分組成:   (1)請求行:請求行由方法欄位、URL 欄位 和HTTP 協議版本欄位 3 個部分組成,他們之間使用空格隔開。常用的 HTTP 請求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRA

怎麼檢視真實專案的http 請求請求報文響應報文,即requestresponse?只有這樣,才能完全徹底明白一個http 請求整個過程,傳送接收的是什麼東西。

IE瀏覽器,f12,網路,捕獲。 如,在前後端分離(即動靜分離,前端只有html程式碼,後端是介面返回json字串。這種方式,是最接近移動端專案即app專案的模式)方式,一個使用者儲存修改即savemodify為例: 因為是form提交是post方式,所以請求正文是

http報文---請求報文響應報文

HTTP請求報文格式:HTTP請求報文主要由請求行、首部行、請求正文3部分組成1,請求行由3部分組成,分別為:請求方法、URL(見備註1)以及協議版本,之間由空格分隔請求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及擴充套件方法,當然

圖解HTTP筆記之第三章:http請求報文響應報文

http的請求報文和響應報文 心好累,人好睏,早上差點遲到,還遇到一奇葩大媽,哎不說了,記筆記: 客戶端傳送的報文稱為請求報文,服務端響應的報文稱為響應報文,報文的格式如下: 報文傳輸過程中會

HTTP請求響應

.cn 訪問 htm ref 頁面 格式 技術分享 -s charset 這篇文章簡單總結一下HTTP請求頭和響應頭,並舉一些web開發中響應頭的用例。 1. HTTP請求頭 accept:瀏覽器通過這個頭告訴服務器,它所支持的數據類型。如:text/html,

http請求響應頭詳細解釋

pad 使用 after 網絡資源 max OS lai 通信 緩存 想對http請求頭和響應頭有更細致的了解,請看如下 Requests部分 Header解釋示例 Accept 指定客戶端能夠接收的內容類型 Accept: text/plain, text/html

Wireshark的HTTP請求響應包如何對應

以Wireshark2.6.3版本為例,如下圖所示,紅框中的803是一次HTTP的GET請求包,綠框中的809、810兩條記錄都是響應包,究竟哪個是803的響應包呢?接下來介紹三種方式識別; 通過傳輸控制協議資訊識別 如下圖,點選803這條記錄後,在下面的

Http請求方式響應 協議的格式

HTTP協議 的請求和響應 一、關於HTTP協議 1.HTTP(hypertext transport protocol),即超文字傳輸協議。 這個協議詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則。 2.客戶端與服務端通訊時傳輸的內容我

http請求響應頭的報文體詳解

示例:<?$filename =  './download/d.rar ';$filesize =  filesize($filename);header( "Content-Type: application/force-download ");header( "Content-Disposition

HTTP請求響應頭總結大全

1、http請求頭 Accept: 用於告訴伺服器,客戶機所支援的資料型別 Accept-Charset: 用於告訴伺服器,客戶機所採用的碼錶 Accept-Encoding: 用於告訴伺服器,客戶機所支援的資料壓縮格式 Accept-Language: 用於告訴伺服器,客

Http請求格式響應格式

HTTP請求格式 當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個數據塊,也就是請求資訊,HTTP請求資訊由3部分組成: l請求方法URI協議/版本 l請求頭(Request Header) l請求正文 下面是一個HTTP請求的例子: GET/samp

http請求響應頭設定

js設定請求頭: var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP") xhr.open(type, url) xhr.setReq

http請求響應包介紹

HTTP(HyperText Transfer Protocol)是一套計算機通過網路進行通訊的規則。計算機專家設計出HTTP,使HTTP客戶(如Web瀏覽器)能夠從HTTP伺服器(Web伺服器)請求資訊和服務,HTTP目前協議的版本是1.1.HTTP是一種無狀態的協議,無狀態是指Web瀏覽器和Web伺服器之

HTTP 請求響應包 (網路篇)

HTTP 請求包和響應包: 1,HTTP請求包: 請求包:請求行,請求頭,【空行】,請求體 http://www.gov.cn/xinwen/2018-07/17/content_5307156.htm 【請求行】組成規則:方法 /url HTTP/版本號  例:GE