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.mzph.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年的年度总结写得比较晚,都快农历新年了,此刻在家里继续写完这篇文章。往年基本是元旦之后几天就写完了。我的年度总结尽量写得非技术人员也能…

如何正确选择仓储物流供应商?

如何正确选择仓储物流供应商? 以前有做电商的朋友向我咨询过怎么去选择优质的仓储物流供应商?有哪些能做作为关键问题进行参考。作为一个优秀的合作伙伴是可以为客户提供超乎预期的服务的,上海维佳供应链服务专业提供物流外包解决仓储物流供应…