一個完整的http請求分析


Request URL:http://localhost:8080/test.jhtml
Request Method:POST
Status Code:200 OK
Remote Address:[::1]:8080
Referrer Policy:no-referrer-when-downgrade

//用於過濾referrer,判斷是否傳遞refrerer報頭內容
//默認值no-referrer-when-downgrade表示當從http-->https 時,允許傳遞referer報頭內容;當從https--->http時,不允許傳遞referer報頭內容

Response Headers view source

Access-Control-Allow-Credentials:true

//Access-Control-Allow-Credentials 屬於響應方的響應報頭,表示響應方是否允許將請求回來的response暴露在頁面上,true表示允許,其他值表示不允許
//響應報頭 服務端可以使用這種方式來設置 response.setHeader("Access-Control-Allow-Credentials", "true")

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept

//響應報頭 Access-Control-Allow-Headers 指明了實際請求中允許request header 攜帶的字段

Access-Control-Allow-Methods:POST, GET, OPTIONS, DELETE

//響應報頭 指定訪問資源允許的請求方法

Access-Control-Allow-Origin:http://localhost:8080

//響應報頭 指定響應資源允許被哪個域引用,多個域之間用,隔開;*表示此資源允許被所有域引用

Access-Control-Max-Age:3600

//響應報頭 表示Access-Control-Allow-Headers和Access-Control-Allow-Methods 返回的結果可以被緩存多久,單位是秒

Content-Type:application/json;charset=UTF-8

//實體報頭 Content-Type屬於實體報頭,表示發送端(客戶端|服務端)發送的實體數據類型
//application/json;charset=UTF-8 服務端返回給客戶端的數據類型是json格式,編碼格式是utf-8

Location: /test/testRequest.jhtml

//響應報頭 指定的是一個重定向請求的目的地址(或者新創建的文件的URL)
//一般伴隨重定向請求出現,狀態碼一般以3開頭或者是201

Date:Tue, 27 Feb 2018 05:51:48 GMT

//通用報頭 格林尼治標准時間,表示報文是什么時間創建的

Server:Apache-Coyote/1.1

//響應報頭 說明原始服務器的軟件信息,可以包含多個產品標識和注釋,產品標識一般按照重要性排序。

Set-Cookie:key=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
Set-Cookie:key=value; Path=/
Set-Cookie:JSESSIONID=7EE63E4C782506A59347EE9CA28C7798; Path=/; HttpOnly

//響應報頭 用於服務端向客戶端發送cookie信息
//HTTP-only類型的Cookie不能使用Javascript通過Document.cookie屬性或者$.cookie()方法來訪問,從而能夠在一定程度上阻止跨域腳本攻擊(XSS)。
//當你不需要在JavaScript代碼中訪問你的Cookie時,可以將該Cookie設置成HttpOnly類型

Transfer-Encoding:chunked

//chunked指HTTP/1.1支持的一種數據傳輸方式,叫做分塊編碼傳輸技術
//對於持續鏈接來說,當響應實體的內容長度不能確定時,可以使用分塊編碼的傳輸方式來界定實體的邊界
//使用chunked分塊編碼傳輸技術,響應實體將被分成很多塊,每一塊的格式: 十六進制的長度值/r/n數據/r/n , 最后結尾的一塊是0/r/n/r/n

Request Headers view source

Accept:application/json, text/javascript, */*; q=0.01

//Accept 表示發送端(客戶端)希望接受的響應數據類型
//application/json 表示此請求優先接受的響應數據類型是json類型,其次是javascript類型,然后才是所有類型
//請求方的http報頭類型:通用報頭||請求報頭||實體報頭
//響應方的http報頭類型:通用報頭||響應報頭||實體報頭
//Accept屬於請求報頭,表示發送端(客戶端)希望接受的響應數據類型
//Content-Type屬於實體報頭,表示發送端(客戶端|服務端)發送的實體數據類型

Accept-Encoding:gzip, deflate, br

//Accept-Encoding 表示瀏覽器發送給服務端,告訴服務端它可以接受的編碼類型
//默認是identity  Accept-Encoding : identity
//指定多個編碼類型時,以q值的大小排優先級,q值越大,優先級越高
//Accept-Encoding : compress;q=0.5, gzip;q=1.0 按優先級支持gzip,compress
//Accept-Encoding : * 支持所有類型
//除非顯示規定identity的q值是0,如 Accept-Encoding : identity;q=0,否則identity類型始終在Accept-encoding支持的類型之內。q=0表示不可接受
//如果沒有q值的定義並且支持的類型中有identity則優先返回identity類型
//如果request header里面沒有定義Accept-Encoding,服務器會默認所有類型都可以被接受
//如果服務器不能返回規定的Accept-Encoding類型,則會返回406給客戶端

Accept-Language:zh-CN,zh;q=0.9

//Accept-Language 表示客戶端聲明的它可以理解的自然語言以及優先選擇的區域方言。服務端接收到這個聲明,會從Accept-Language的選項中選一個然后使用Content-Language來響應通知客戶端

Connection:keep-alive

//此參數決定當前事物完成之后,是否關閉連接網絡連接。Keep-alive表示持續保持連接不關閉

Content-Length:0

//屬於實體報頭,表示發送方(客戶端|服務端)發送給接收方(客戶端|服務端)的消息主體的大小

Cookie:key1=value1; key2=value2;

//關於cookie的詳細解釋可以參考這篇文章  https://www.cnblogs.com/andy-zhou/p/5360107.html

Host:localhost:8080
Origin:http://localhost:8080

//用於標記請求來源
//只用於post請求,跨域就一定會有
//只包含host,post等信息,不會暴露參數內容

Referer:http://localhost:8080/test.jhtml?page=pagename

//用於標記請求來源
//用於所有類型的請求
//暴露參數

User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

//用戶代理信息,使服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。

X-Requested-With:XMLHttpRequest

//用於判斷這個http請求是傳統的http同步請求還是http ajax 異步請求
//ajax 異步請求 XMLHttpRequest
//傳統http同步請求 null
//前端可以通過xhr.setRequestHeader("X-Requested-With","XMLHttpRequest")
//服務端可以通過request.getHeader("X-Requested-With")拿到這個值做進一步的的驗證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM