• 请求头内容

(1)Host(主机和端口号) :指定被请求资源的Internet主机和端口号,对应网址URL的Web名称和端口号,通常属于URL的Host部分。(服务器地址,表示浏览器要向哪台服务器发送请求,可以是 IP 端口号,也可以是域名。该字段由浏览器生成,JS无法干预)

(2)Connection(连接类型):表示客户端与服务器的连接类型。通常情况下,连接类型的对话流程如下:

①Client发起一个包含Connection:keep-alive的请求(HTTP 1.1使用keep-alive为默认值)

②Server收到请求后:

◆如果Server支持keep-alive, 回复一个包含Conection:keep-alive的响应,不关闭连接。

◆如果Server不支持keep-alive,回复一个包含Connection:close的响应,关闭连接。

③如果Client收到包含Connection:keep-alive的响应,则向同个连接发送下一个请求,直到一方主动关闭连接。

注意: Connection:keep-alive 在很多情况下能够重用连接,减少资源消耗,缩短响应时间。例如,当浏览器需要多个文件时(如一个HTML文件和多个Image文件),不需要每次都去请求建立连接。(指定与连接相关的属性,如:connection:Keep-Alive,表示保持连接,即浏览器与服务器建立了一次TCP连接以后就可以通过这个已存在的连接来发送请求。我之前一直以为这不是显然的吗?因为http也是基于TCP的嘛然后TCP是面向连接的,可靠的传输,但原来自己有一层关系模糊掉了。不管是TCP传输还是UDP传输,其实HTTP都不关心的,因为HTTP协议是在应用层,所以在讨论这个长连接的时候应该基于应用层。上述保持连接是与之前的不保持连接比较的,即HTTP1.0中如果没有显式的注明connection:Keep-Alive,那么其实服务器与浏览器之间是一种短连接,即浏览器发送请求,服务器返回数据,然后这个连接就关闭了。那么每次发送请求都需要重新建立连接。从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,即最开始说到的情况---浏览器与服务器建立了一次TCP连接以后就可以通过这个已存在的连接来发送请求。)

(3)Upgrade-Insecure-Requests(升级为HTTPS请求):表示升级不安全的请求,会在加载HTTP资源时自动替换成HTTPS请求,让浏览器不再显示HTTPS页面中的HTTP请求警报。

HTTPS是以安全为目标的HTTP通道,所以在HTTPS承载的页面上不允许出现HTTP请求,一且出现就会提示或报错。

(4)User-Agent(浏览器名称):标识客户端身份的名称,通常页面会根据不同的User-Agent信息自动做出适配,甚至返回不同的响应内容。(当前浏览器操作系统的信息以及浏览器版本号)

(5)Accept(传输文件类型):指浏览器或其他客户端可以接受的MIME(Multipurpose Internet Mail Extensions,多用途因特网邮件扩展)文件类型,服务器可以根据它判断并返回适当的文件格式。

Accept报头的示例如下:

Accept: */*              //1表示什么都可以接收
Accept: image/gif        //表明客户端希望接受GIF图像格式的资源
Accept: text/html        //表明客户端希望接受html文本
Accept: text/html,application/xhtml+xml;q=0.9,image/*;q=0.8 //表示浏览器支持的MIME类型分别是html文本、xhtml和xml文档、所有的图像格式资深

其中:

◆q:表示权重系数,范围是0=<q<= 1。q值越大,请求越倾向于获得其“;”之前的类型表示的内容。若没有指定q值,则默认为1,按从左到右排序;若被赋值为0,则表示浏览器不接受此内容类型。

◆text: 用于标准化地表示文本信息,文本信息可以是多种字符集和多种格式。

◆Aplication:用于传输应用程序数据或者二进制数据。

(6)Referer(页面跳转来源):表明产生请求的网页来自于哪个URL。用户是从该Referer页面访问到当前请求的页面。这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

有时下载某网站的图片时,需要对应Referer,否则无法下载图片,那是因为做了防盗链。原理就是根据Referer去判断URL是否是本网站的地址,如果不是,则拒绝:如果是,就可以下载。

(7)Accept-Encoding(文件编解码格式):指出浏览器可以接受的编码方式。编码方式不同于文件格式,其作用是压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式,许多情形下可以减少大量的下载时间。(浏览器告诉服务端,我支持的数据压缩格式,那服务器就不要发一些我不支持的格式过来了)例如:

Accept-Encoding:gzip;q=1.0, identity; q=0.5, *;q=0

如果有多个Enoding同时匹配,按照q值顺序排列,本例中按顺序支持gip、identity压缩编码,支持gzip的浏览器会返回经过gzip编码的HTML页面。

如果请求消息中没有设置这个报头,通常服务器假定客户端不支持压缩,直接返回文本。

(8)Accept-Language(语言种类):指出浏览器可以接受的语言种类,如en或en-us指英语,zh或zh--cn指中文,当服务器能够提供一种以上的语言版本时要用到。(浏览器告诉服务端,我采用的语言)

如果目标网站支持多个语种,可以使用这个信息来决定返回什么语言的网页。

(9)Accepl-Charset (字符编码) :指出浏览器可以接受的字符编码。(浏览器告诉服务端,我支持的编码格式,那服务器就不要发一些我不支持的格式过来了)例如:

Accept-Charset:iso-8859-1,gb2312,utf-8

常用的字符编码包括:

◆iso-8859-1:通常称为Latin-1。Latin-1包括书写所有西方欧洲语言不可缺少的附加字符,英文浏览器的默认值是iso-8859-1。

◆gb2312:标准简体中文字符集。

◆utf-8: Unicode的一种变长字符编码, 可以解决多种语言文本显示问题,从而实现应用国际化和本地化。

如果在HTTP请求消息中没有设置这个域,默认情况下,客户端可以接受任何字符集,返回的是网页charset指定的编码。

(10)Cookie(Cookie):浏览器用这个属性向服务器发送Cookie。Cookie 是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现模拟登录。

(11)Conten-Type(POST数据类型):指定POST请求中用来表示的内容类型。例如:

Content-Type=Text/XML; charset=gb2312:

上述示例指明了该请求的消息体中包含的是纯文本的XML类型的数据,字符编码采用gb2312。

(12)If-Modified-Since:告诉服务器,这个资源的缓存时间。具体操作是这样的,当有一个资源需要浏览器缓存一下,以便下次直接使用时,那么这个资源就附上这个字段,其值是最近的修改时间(Modified)。下一次在请求这个资源的时候,服务器就会比对这个字段值,看与服务器上的这个资源的最近修改时间是否一致,一致表示并没有修改过,那就返回304,浏览器收到这个状态码就知道这个资源没有修改过,可以直接在本地提取。

  • 常见响应头部分

Location:这个字段通常配合302状态使用,用于告诉浏览器你去找谁

Server:告知浏览器,服务器的类型

Content-Type:回送的数据类型,响应正文的类型

Content-Length:响应正文长度

Content-Charset:响应正文使用的数据压缩格式

Content-Language:响应正文使用的语言

Last-Modified:资源最后修改的时间

Refresh:用于控制浏览器定时刷新

ETag:缓存相同的头,被请求变量的实体值,ETag是一个可以与web资源关联的记号

Expires:用于说明网页的失效时间,如果该值为一个<0的值,则服务器是告知浏览器不要缓存

Cache-Control:该字段值为no-cache通知浏览器不要缓存

  • 响应码分五种类型,由它们的第一位数字表示:

1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误,请求包含语法错误或者请求无法实现
5xx:服务器错误,服务器不能实现一种明显无效的请求

状态代码 状态信息 含义
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新
200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
201 Created 服务器已经创建了文档,Location头给出了它的URL。
202 Accepted 已经接受请求,但处理尚未完成。
203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。
204 No Content 没有新文档,浏览器应该继续显示原来的文档。
205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”,出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。
303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。(HTTP 1.1新)
400 Bad Request 请求出现语法错误。
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答,
405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)
406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。
407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)
408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)
410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。(HTTP 1.1新)
411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)
412 Precondition Failed 请求头中指定的一些前提条件失败(HTTP 1.1新)。
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。
414 Request URI Too Long URI太长(HTTP 1.1新)。
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)
500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
503 Service Unavailable 服务器由于维护或者负载过重未能应答。
504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本

蜘蛛:请求头、响应头、响应码相关推荐

  1. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头

    http://blog.csdn.net/qxs965266509/article/details/8082810 用于HTTP请求中的常用请求头字段 Accept:用于高速服务器,客户机支持的数据类 ...

  2. http状态码 以及请求响应头相关

    1xx消息[编辑] 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

  3. http简介以及常见知识和http请求头,响应头,状态码,内容类型对照表分享(超实用)

    1.http简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  4. iOS开发之HTTP的请求头和响应头 以及常见的响应状态码

    *************请求头************** 请求头:包含了对客户端的环境描述.客户端请求信息等 GET /minion.png HTTP/1.1   //包含了请求方法.请求资源路径 ...

  5. python flask 设置个性化的响应体 响应头 状态码

    目录 需求场景 使用return直接设置特定的响应信息 使用make_response设置特定的响应信息 需求场景 在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信 ...

  6. python flask 设置 header 响应体、响应头、状态码

    需求场景 在api设计中,基于restful的设计原则,一个http的响应应该包含执行的响应信息以及状态码. 例如:一个错误信息的响应信息应该包含内容以及返回对应的设计错误码. 在flask中如何制定 ...

  7. python构造响应头_Python爬虫库requests获取响应内容、响应状态码、响应头

    首先在程序中引入Requests模块 import requests 一.获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 ...

  8. php获取curl头_php中CURL请求头和响应头获取方法

    本文主要和大家分享php中CURL请求头和响应头获取方法,希望能帮助到大家. 1.从CURL中获取响应头$oCurl = curl_init(); // 设置请求头, 有时候需要,有时候不用,看请求网 ...

  9. 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解

    一. HTTP请求报文解剖 HTTP Request :HTTP请求 Request Line:请求行 Header:请求头 Request Body:请求体 HTTP请求报文由3部分组成(请求行+请 ...

  10. http 请求头和响应头

    客户端发送请求过程带着的数据: 1.请求地址 2.请求方式 3.请求头 request headers 4.请求参数 https://www.juhe.cn/ 130.... 1a2b....pei ...

最新文章

  1. MVC+Ninject+三层架构+代码生成 -- 总结(四、數據層)
  2. Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 1
  3. 蓝桥杯小朋友排队java_[蓝桥杯][历届试题]小朋友排队 (C++代码)
  4. python基础语法类型_Python基础入门语法和变量类型(一)
  5. 光电整纬机狭缝检测工作原理
  6. node.js 创建服务器_Node.js HTTP软件包–创建HTTP服务器
  7. 匿名黑客称苹果iCloud将成下一个攻击目标
  8. Android 极光推送集成
  9. PAT A1007 动态规划
  10. matlab的otdr仿真,OTDR仿真分析软件
  11. mac键盘快捷键详解,苹果电脑键盘快捷键图文教程
  12. Window10系统下触摸板失灵了 该咋处理
  13. 自带流量的免费微信编辑器推荐
  14. 《泛型编程与stl》
  15. 大数据冲击下图书出版编辑转型策略探析(非原创)
  16. OmniPlan工具使用手册
  17. 2011~至今 百度指数采集方法与工具、支持百度指数、资讯指数、媒体指数
  18. 《移动App测试实战》——1.2 测试用例设计和评审
  19. CoffeeScript for循环处理
  20. jenkins+git+gradle配置自动打apk包

热门文章

  1. 图标在XMind中应用
  2. 拳皇命运服务器维护多长时间,拳皇命运开服表
  3. api.php(260x260),Restful Api文档 -V3-教程
  4. No4.搭建基本的授权码模式请求token(一):实现授权服务端的授权码模式操作
  5. 神武3 服务器维护公告,《神武3》手游本周更新后的调整内容抢先知
  6. 20大风控文本分类算法-基于字符级的tfidf+逻辑回归
  7. 《掌控习惯》读书笔记
  8. 【读】自动文摘——预备
  9. Halcon create_pose算子帮助文档翻译
  10. 自己动手搭建家庭局域网(三),千兆网+NAS存储+低成本