network中的請求信息,headers中的每一項分別是什么意義?

這里是修真院前端小課堂,每篇分享文從

【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】

八個方面深度解析前端知識/技能,本篇分享的是:

【network中的請求信息,headers中的每一項分別是什么意義?】

【JS-5】network中的請求信息,headers中的每一項分別是什么意義?

?

大家好,我是IT修真院深圳分院第12期的學員韓鵬,一枚正直純潔善良的前端程序員,今天給大家分享一下,修真院官網JS任務5,深度思考中的知識點——network中的請求信息,headers中的每一項分別是什么意義?

?

1.背景介紹

作為一個Web開發人員,日常中與我們開發相關的,就是Chrome的開發者工具。Network標簽頁對于分析網站請求的網絡情況、查看某一請求的請求頭和響應頭還有響應內容很有用,特別是在查看Ajax類請求的時候,非常有幫助。今天就是要簡要說說Chrome的開發者工具中Network中header部分。

?

2.知識剖析

Network面板-請求表

????Name:資源名稱,點擊名稱可以查看資源的詳情情況,包括Headers、Preview、Response、Cookies、Timing。????

????Status:HTTP狀態碼。

????Type:請求的資源MIME類型。

????Initiator:標記請求是由哪個對象或進程發起的(請求源)。

????????Parser: 請求由Chrome的HTML解析器時發起的。

????????Redirect:請求是由HTTP頁面重定向發起的。

????????Script:請求是由Script腳本發起的。

????????Other:請求是由其他進程發起的,比如用戶點擊一個鏈接跳轉到另一個頁面或者在地址欄輸入URL地址。

? ? Size:從服務器下載的文件和請求的資源大小。如果是從緩存中取得的資源則該列會顯示(from cache)

????Time:請求或下載的時間,從發起Request到獲取到Response所用的總時間。

????Timeline:顯示所有網絡請求的可視化瀑布流(時間狀態軸),點擊時間軸,可以查看該請求的詳細信息,點擊列頭則可以根據指定的字段可以排序。

?

????通過點擊某個資源的Name可以查看該資源的詳細信息,根據選擇的資源類型顯示的信息也不太一樣,可能包括如下Tab信息:

Headers:該資源的HTTP頭信息。

Preview:根據你所選擇的資源類型(JSON、圖片、文本)顯示相應的預覽。

Response:顯示HTTP的Response信息。

Cookies:顯示資源HTTP的Request和Response過程中的Cookies信息。

Timing:顯示資源在整個請求生命周期過程中各部分花費的時間。

?

查看資源HTTP頭信息

?

????在Headers標簽里面可以看到HTTP Request URL、HTTP Method、Status Code、Remote Address等基本信息和詳細的Response Headers、Request Headers以及Query String Parameters或者Form Data等信息。

General部分:????

????Request URL:資源的請求url

????Request Method:HTTP方法

????Status Code:響應狀態碼

????200(狀態碼) OK(原因短語)????

????301 - 資源(網頁等)被永久轉移到其它URL????

????404 - 請求的資源(網頁等)不存在????

????500 - 內部服務器錯誤????

Response Headers:

????Content-Encoding:gzip ——壓縮編碼類型

????Content-Type:text/html ——服務端發送的類型及采用的編碼方式????

????Date:Tue, 14 Feb 2017 03:38:28 GMT ——客戶端請求服務端的時間????

????Last-Modified:Fri, 10 Feb 2017 09:46:23 GMT ——服務端對該資源最后修改的時間,GMT是格林尼治標準時間????

????Server:nginx/1.2.4 ——服務端的Web服務端名????

????Transfer-Encoding:chunked ——分塊傳遞數據到客戶端????

Request Headers:

????Accept:text/html ——客戶端能接收的資源類型????

????Accept-Encoding:gzip, deflate ——客戶端能接收的壓縮數據的類型????

????Accept-Language:en-US,en;q=0.8 ——客戶端接收的語言類型????

????Cache-Control:no-cache ——服務端禁止客戶端緩存頁面數據????

????Connection:keep-alive ——維護客戶端和服務端的連接關系????

????Cookie: ——客戶端暫存服務端的信息????

????Host:www.jnshu.com ——連接的目標主機和端口號????

????Pragma:no-cache ——服務端禁止客戶端緩存頁面數據????

????Referer:http://www.jnshu.com/daily/12345 ——來于哪里????

????User-Agent: ——客戶端版本號的名字????

?

3.常見問題

????使用post發送請求時如何設置content-type的值?

?

4.解決方案

????常用的Content-Type值:????

????????1. application/x-www-form-urlencoded 最常見的POST提交格式,使用這個編碼格式post的數據會以鍵值對的方式提交????

????????2. multipart/form-data 通常上傳圖片等文件會使用這種編碼格式提交????

????????3. application/json 提交JSON格式的數據

????設置請求頭的方法:

????????1、在http服務的在服務端發送請求時,也就是調用http()方法時,在config對象中設置請求頭信息。事例如下:

????????????$http.post( url , data , {headers : {'My-Header' : 'value';}}).then(function( ){……});

????????這種方法的好處就是針對不同路徑的請求,可以個性化配置請求頭部,缺點就是,不同路徑請求都需要單獨配置。

?

????????2、第二種設置請求頭信息的方式就是在$httpProvider.defaults.headers屬性上直接配置。事例如下:

????angular.module('app', []).config(function($httpProvider) {$httpProvider.defaults.headers.common = { 'My-Header' : 'value' }})

????????$httpProvider.defaults.headers有不同的屬性,如common、get、post、put等。因此可以在不同的http請求上面添加不同的頭信息,common是指所有的請求方式。

????????這種方式添加請求頭信息的優勢就是可以給不同請求方式添加相同的請求頭信息,缺點就是不能夠為某些請求path添加個性化頭信息。

?

5.代碼實戰

6.拓展思考

????HTTP的缺點

????????通訊使用明文(不加密),內容可能會被監聽;????

????????不驗證通訊方的身份,因此有可能遭遇偽裝;????

????????無法證明白報文的完整性,所以有可能已被篡改;????

????解決方法:使用HTTPS????

????????HTTP + 加密 + 認證 + 完整性保護 = HTTPS

?

7.參考文獻

參考一:HTTP請求頭和響應頭含義

參考二:content-type說明

參考三:Network面板

參考四:$http-設置http請求頭

?

8.更多討論

1、TIMELINE 時間軸中的不同顏色的線代表什么意思?

????答:Timeline工具里面使用是4種顏色來表示不同類別的事件:?
????????????藍色:加載;黃色:腳本;紫色:渲染;綠色:繪制;

2、所有請求都有Content-Type嗎?

????答:GET 請求不存在請求實體部分,鍵值對參數放置在 URL 尾部,瀏覽器把form數據轉換成一個字串(name1=value1&name2=value2...),然后把這個字串追加到url后面,用?分割,加載這個新的url。因此請求頭不需要設置 Content-Type 字段。

3、除了已講的兩種,還有什么方法設置Content-Type嗎?

????答:有的。

????????第三種設置請求頭信息的地方是$httpProvider.interceptors。也就是為請求或相應注冊一個攔截器。使用這這方式我們首先需要定義一個服務。

????myModule.factory('authInterceptor', function($rootScope, ?$cookies){return {request: function(config){config.headers = config.headers || {};if($cookies.get('token')){config.headers.authorization = 'Bearer ' + $cookies.get('token');}return config;},responseError: function(response){// ...}};})

然后把上面定義的服務注冊到$httpProvider.interceptors中。

 ? ?.config(function($httpProvider){$httpProvider.interceptors.push('authInterceptor');})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276506.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276506.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276506.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習 sentry 源碼整體架構,打造屬于自己的前端異常監控SDK

前言這是學習源碼整體架構第四篇。整體架構這詞語好像有點大,姑且就算是源碼整體結構吧,主要就是學習是代碼整體結構,不深究其他不是主線的具體函數的實現。文章學習的是打包整合后的代碼,不是實際倉庫中的拆分的代碼。其余三篇分…

巴西龜吃什么

1、活蝦,哈哈,巴西龜最喜歡的食物,超市很多雞尾蝦買的,就那種,要活的,鍛煉它們的天性,一次一只可以吃一、兩天; 2、蚶子,貝殼類,活的,整個扔進去&…

綁定dictionary 給定關鍵字不再字典中_VBA代碼集錦-利用字典做兩列數據的對比并對齊...

源數據:代碼:Sub 對比()Dim arr, brr, crrDim i, j, n, lastrowA, lastrowB As Integer建立字典對象Set d CreateObject("scripting.dictionary")獲取數據區域最后一行的行數lastrowA Sheets("對比對齊兩列數據").Cells(Rows.Coun…

linux啟動時掛載rootfs的幾種方式 .

轉載鏈接:http://blog.csdn.net/zuokong/article/details/9022707 根文件系統(在樣例錯誤消息中名為 rootfs)是 Linux 的最基本的組件。根文件系統包含支持完整的 Linux 系統所需的所有內容。它包含所有應用程序、配置、設備、數據等 Linux 中…

PHP 手冊

by:Mehdi AchourFriedhelm BetzAntony DovgalNuno LopesHannes MagnussonGeorg RichterDamien SeguyJakub Vrana其他貢獻者2018-06-19Edited By: Peter Cowburn中文翻譯人員:肖盛文洪建家穆少磊宋琪黃嘯宇王遠之肖理達喬楚戴劼褚兆瑋周夢康袁玉強段小強© 1997-…

前端使用puppeteer 爬蟲生成《React.js 小書》PDF并合并

前端也可以爬蟲,寫于2018年08月29日,現在發布到微信公眾號申明原創。掘金若川 本文章鏈接:https://juejin.im/post/5b86732451882542af1c80821、 puppeteer 是什么?puppeteer: Google 官方出品的 headless Chrome node 庫puppetee…

蜘蛛與佛的故事

最近閉關,空面四壁,窗外層巒疊嶂,窗臺上只有一盆花每日陪著我,朋友們都說我要成佛了,想想也是! 于是在閉關即將結束的時候找了一篇佛的故事送給自己,希望自己能夠頓悟一些"禪"機。 從前,有一座圓音寺,每天都…

信息安全管理與評估_計算機工程學院教師參加“信息安全管理與評估賽項”說明會...

看了就要關注我,喵嗚~2019年3月15日下午,2019年陜西省高等職業院校技能大賽“信息安全管理與評估賽項說明會”在咸陽職業技術學院舉行。出席本次會儀的有咸陽職業技術學院教務處長楊新宇、神州數碼范永強經理、神州數碼信息安全工程師高峰和各院校指導教…

haproxy概念和負載均衡

https://pan.baidu.com/s/1Sq2aJ35zrW2Xn7Th9j7oOA //軟件百度網盤連接 在80.100虛擬機上 systemctl stop firewalld //關閉防火墻 setenforce 0 //關閉監控 yum install lrz* -y //安裝上傳軟件 tar xf haproxy-1.5.15.tar.gz -C /opt/ //解壓壓縮包到/opt/ cd /op…

PHP用戶注冊郵箱驗證激活帳號

轉載鏈接:http://www.helloweba.com/view-blog-228.html 本文將結合實例,講解如何使用PHPMysql完成注冊帳號、發送激活郵件、驗證激活帳號、處理URL鏈接過期的功能。 業務流程 1、用戶提交注冊信息。 2、寫入數據庫,此時帳號狀態未激活。 …

知乎問答:一年內的前端看不懂前端框架源碼怎么辦?

知乎問答:一年內的前端看不懂前端框架源碼怎么辦?以下是我的回答,閱讀量 1000。現在轉載到微信公眾號中。鏈接:https://www.zhihu.com/question/350289336/answer/910970733其他回答的已經很好了。剛好最近在寫學習源碼整體架構系…

幫自己發個求職簡歷

幫自己發個求職簡歷 發個求職信息。本人擅長Web開發,尤其擅長Flex,愿從事Web開發,最好是Web前端開發,下面是我的詳細個人簡歷: 個人信息: 姓名:伍國耀 年齡:23 性別:男 專…

python函數 global_**Python的函數參數傳遞 和 global

函數的參數到底是傳遞的一份復制的值,還是對內存的引用?我們看下面一段代碼:a []def fun(x):x.append(1)fun(a)print(a)想想一下:如果傳遞的是一份復制的值,那么列表a應該是不會變化的,還是空列表&#xf…

冷啟動問題:如何構建你的機器學習組合?

作為即將告別大學的機器學習畢業狗的你,會不會有種迷茫的感覺?你知道 HR 最看重的是什么嗎?在求職季到來之前,畢業狗要怎么做,才能受到 HR 的青睞、拿到心儀的 Offer 呢?負責幫助應屆生找到機器學習工作的 …

JavaScript 對象所有API解析【2020版】

寫于 2017年08月20日,雖然是2017年寫的文章,但現在即將2020年依舊不過時,現在補充了2019年新增的ES10 Object.fromEntries()。發到公眾號申明原創。若川順便在此提前祝大家:2020年更上一層樓。近日發現有挺多人對對象基礎API不熟悉…

javascript操作符之new 也瘋狂 (2)

JavaScript本是一種基于原形的(prototypal)語言,但它的“new”操作符看起來有點像經典語言。這迷惑了廣大程序員們,并導致了很多使用上的問題。 在JavaScript中,不要用到new Object()這種操作,該用{ }來代替…

python中if語句缺省else_9_【Python學習分享文章】_if(條件語句)

【Python學習分享文章】_if(條件語句)_logicalJudgement介紹及基本操作綜述計算機的“條件語句”和生活中的“條件成立”是不一樣的。一個生活中的例子如果被計算機執行則是如下段子:老婆讓程序員老公去買蘋果,說:“去水果店買5個蘋果&#x…

PHP生成各種驗證碼和Ajax驗證

轉載鏈接:http://www.helloweba.com/view-blog-191.html 驗證碼在WEB應用中非常重要,通常用來防止用戶惡意提交表單,如惡意注冊和登錄、論壇惡意灌水等。本文將通過實例講解使用PHP生成各種常見的驗證碼包括數字驗證碼、數字字母驗證碼、中文…

若川的2019年度總結,波瀾不驚

從2014年開始寫年度總結至今已經六個年頭了。正如孔子所說:逝者如斯夫,不舍晝夜。2019年的年度總結寫得比較晚,都快農歷新年了,此刻在家里繼續寫完這篇文章。往年基本是元旦之后幾天就寫完了。我的年度總結盡量寫得非技術人員也能…

如何正確選擇倉儲物流供應商?

如何正確選擇倉儲物流供應商? 以前有做電商的朋友向我咨詢過怎么去選擇優質的倉儲物流供應商?有哪些能做作為關鍵問題進行參考。作為一個優秀的合作伙伴是可以為客戶提供超乎預期的服務的,上海維佳供應鏈服務專業提供物流外包解決倉儲物流供應…