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

前言这是学习源码整体架构第四篇。整体架构这词语好像有点大,姑且就算是源码整体结构吧,主要就是学习是代码整体结构,不深究其他不是主线的具体函数的实现。文章学习的是打包整合后的代码,不是实际仓库中的拆分的代码。其余三篇分…

绑定dictionary 给定关键字不再字典中_VBA代码集锦-利用字典做两列数据的对比并对齐...

源数据:代码:Sub 对比()Dim arr, brr, crrDim i, j, n, lastrowA, lastrowB As Integer建立字典对象Set d CreateObject("scripting.dictionary")获取数据区域最后一行的行数lastrowA Sheets("对比对齐两列数据").Cells(Rows.Coun…

前端使用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…

知乎问答:一年内的前端看不懂前端框架源码怎么办?

知乎问答:一年内的前端看不懂前端框架源码怎么办?以下是我的回答,阅读量 1000。现在转载到微信公众号中。链接:https://www.zhihu.com/question/350289336/answer/910970733其他回答的已经很好了。刚好最近在写学习源码整体架构系…

冷启动问题:如何构建你的机器学习组合?

作为即将告别大学的机器学习毕业狗的你,会不会有种迷茫的感觉?你知道 HR 最看重的是什么吗?在求职季到来之前,毕业狗要怎么做,才能受到 HR 的青睐、拿到心仪的 Offer 呢?负责帮助应届生找到机器学习工作的 …

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

写于 2017年08月20日,虽然是2017年写的文章,但现在即将2020年依旧不过时,现在补充了2019年新增的ES10 Object.fromEntries()。发到公众号申明原创。若川顺便在此提前祝大家:2020年更上一层楼。近日发现有挺多人对对象基础API不熟悉…

PHP生成各种验证码和Ajax验证

转载链接:http://www.helloweba.com/view-blog-191.html 验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录、论坛恶意灌水等。本文将通过实例讲解使用PHP生成各种常见的验证码包括数字验证码、数字字母验证码、中文…

若川的2019年度总结,波澜不惊

从2014年开始写年度总结至今已经六个年头了。正如孔子所说:逝者如斯夫,不舍昼夜。2019年的年度总结写得比较晚,都快农历新年了,此刻在家里继续写完这篇文章。往年基本是元旦之后几天就写完了。我的年度总结尽量写得非技术人员也能…

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

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

Realtime Ray Tracing RenderMan Point Cloud

这里演示的是演示的是光线与包围盒测试。在装备Winfast 8800GT 512M的台式机上可以进行每秒4.6亿次点到射线的距离计算计算,用于判断点是否真正的与射线相交。外部数据的填充与准备延迟依旧是GPGPU应用的一个巨大门槛。白色是命中的包围盒,绿色的就是射线…

如何制定有价值的目标

写于2017年07月09日23:29现在修改发布到公众号声明原创公司会制定一系列目标,个人也可以制定一些目标,有利于自我学习成长。那么看我这篇文章可以告诉你如何制定有价值的目标。会制定有价值的目标,绝对超越很多人。SMART原则王健林之前说定个…

清除dns缓存命令行_怎么防止移动dns劫持,防止移动dns劫持要先了解什么是dns劫持...

本人以网络技术出身,近两年接触CDN网络,处理了一些CDN方面的网络问题,大多数以运营商丢包,延迟抖动为主,也处理一些硬件故障,比如机械硬盘的读写io测试,内存条兼容性测试,服务器IPMI…

移动硬盘格式化(pc和mac共用)-菜鸟级解决方案[转]

用pc的时候买了一个320G的移动硬盘,从来没考虑过什么格式化的问题,插上就用了。 后来接触mac才发现pc和mac在移动存储设备的格式化上还是有不少冲突的。如果你的移动硬盘mac上不能修改,或者pc上找不到,那就尽情得批判万恶的资本主…

回答知乎问题:你写过什么自认为惊艳的诗?

首次整理于 2019-07-27 22:04:00,现在整理发布在公众号申明原创。整理了一下大学期间2012年~2016年发布在QQ空间,自己感觉写得还行的七首“诗词”。回答知乎问题:你写过什么自认为惊艳的诗?中国古诗词博大精深。小时候…

密码可逆不可逆选择_膝关节损伤不可逆!跑步要注意!

膝盖同时也是运动者最常受伤的关节。根据美国运动医学整型外科协会的报告,美国每年约有三百万人拉伤、挫伤、或扭伤他们的膝部,其中约有一半是因为运动引起的。而对于跑者而言,影响最大的就是我们的膝关节。换言之,长跑的潜在危害…

面试官问:能否模拟实现JS的call和apply方法

写于2018年11月30日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创。相对比较基础的知识,虽然日常开发可能用得比较少,各种源码中有很多call和apply,需要掌握。前言这是面试官问系列的第三篇,旨在…

prometheus 发送恢复 值_Prometheus基础知识介绍

【编者的话】本文会让你了解Prometheus是什么,并让你理解它在监控领域的适用场景。Prometheus起源很久以前,加利福尼亚州山景城有一家名为Google的公司。他们推出了大量产品,其中最著名的是广告系统和搜索引擎平台。为了运行这些不同的产品&a…

面试官问:JS的this指向

写于2018年12月25日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创。前言这是面试官问系列的第四篇,旨在帮助读者提升JS基础知识,包含new、call、apply、this、继承相关知识。面试官问系列文章如下:感兴趣的…