首页 > 其他分享 >说说 HTTP 常见的请求头有哪些? 作用?

说说 HTTP 常见的请求头有哪些? 作用?

时间:2024-03-30 18:45:51浏览次数:20  
标签:HTTP 请求 哪些 Modified Accept 头有 服务器 Match

一、是什么

HTTP头字段(HTTP header fields),是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分

它们定义了一个超文本传输协议事务中的操作参数

HTTP头部字段可以自己根据需要定义,因此可能在 Web服务器和浏览器上发现非标准的头字段

下面是一个HTTP请求的请求头:

GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0

二、分类

常见的请求字段如下表所示:

字段名说明示例
Accept 能够接受的回应内容类型(Content-Types) Accept: text/plain
Accept-Charset 能够接受的字符集 Accept-Charset: utf-8
Accept-Encoding 能够接受的编码方式列表 Accept-Encoding: gzip, deflate
Accept-Language 能够接受的回应内容的自然语言列表 Accept-Language: en-US
Authorization 用于超文本传输协议的认证的认证信息 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 用来指定在这次的请求/响应链中的所有缓存机制 都必须 遵守的指令 Cache-Control: no-cache
Connection 该浏览器想要优先使用的连接类型 Connection: keep-alive Connection: Upgrade
Cookie 服务器通过 Set- Cookie (下文详述)发送的一个 超文本传输协议Cookie Cookie: $Version=1; Skin=new;
Content-Length 以 八位字节数组 (8位的字节)表示的请求体的长度 Content-Length: 348
Content-Type 请求体的 多媒体类型 Content-Type: application/x-www-form-urlencoded
Date 发送该消息的日期和时间 Date: Tue, 15 Nov 1994 08:12:31 GMT
Expect 表明客户端要求服务器做出特定的行为 Expect: 100-continue
Host 服务器的域名(用于虚拟主机 ),以及服务器所监听的传输控制协议端口号 Host: en.wikipedia.org:80 Host: en.wikipedia.org
If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要作用时,用作像 PUT 这样的方法中,仅当从用户上次更新某个资源以来,该资源未被修改的情况下,才更新该资源 If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since 允许在对应的内容未被修改的情况下返回304未修改 If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match 允许在对应的内容未被修改的情况下返回304未修改 If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range 如果该实体未被修改过,则向我发送我所缺少的那一个或多个部分;否则,发送整个新的实体 If-Range: "737060cd8c284d8af7ad3082f209582d"
Range 仅请求某个实体的一部分 Range: bytes=500-999
User-Agent 浏览器的浏览器身份标识字符串 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
Origin 发起一个针对 跨来源资源共享 的请求 Origin: http://www.example-social-network.com

三、使用场景

通过配合请求头和响应头,可以满足一些场景的功能实现:

协商缓存

协商缓存是利用的是【Last-Modified,If-Modified-Since】【ETag、If-None-Match】这两对请求头响应头来管理的

Last-Modified 表示本地文件最后修改日期,浏览器会在request header加上If-Modified-Since(上次返回的Last-Modified的值),询问服务器在该日期后资源是否有更新,有更新的话就会将新的资源发送回来

Etag就像一个指纹,资源变化都会导致ETag变化,跟最后修改时间没有关系,ETag可以保证每一个资源是唯一的

If-None-Match的header会将上次返回的Etag发送给服务器,询问该资源的Etag是否有更新,有变动就会发送新的资源回来

而强制缓存不需要发送请求到服务端,根据请求头expirescache-control判断是否命中强缓存

会话状态

cookie,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据,通过响应头set-cookie决定

作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制 Cookie有效期、安全性、使用范围的可选属性组成

Cookie 主要用于以下三个方面:

  • 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为等

参考文献

  • https://zh.wikipedia.org/wiki/HTTP头字段
  • https://github.com/amandakelake/blog/issues/41

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

标签:HTTP,请求,哪些,Modified,Accept,头有,服务器,Match
From: https://www.cnblogs.com/smileZAZ/p/18105854

相关文章

  • 视频素材免费无水印软件有哪些?视频素材免费下载素材库
        在这个视觉为王的时代,一段精彩的视频能够跨越语言和文化的障碍,触动每一个心灵。对于每一位热血沸腾的视频创作者而言,寻找那些高质量无水印的素材,就像是在无尽的创意海洋中航行,在这段旅程中,我为你精选了全球范围内的视频素材网站。1,蛙学府(中国)    深耕于......
  • HTTPS协议
    目录1.HTTPS是什么?2.加密和解密3.HTTPS的工作过程3.1对称加密3.2非对称加密3.3引入证书4.总结1.HTTPS是什么?HTTPS也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层,由于HTTP协议内容都是按照文本的方式明文传输的,所以就导致了在传输的过程中会出现一些被篡......
  • 隐藏ASP.NET MVC的版本信息,使其不在HTTP Header中显示
    隐藏ASP.NETMVC的版本信息,使其不在HTTPHeader中显示。一、隐藏:X-AspNetMvc-Version在Global.asax文件的Application_Start方法中添加:1MvcHandler.DisableMvcResponseHeader= true;二、移除Header中的Server在Global.asax文件中添加:12345......
  • 核心关键词的基础三度是什么?在SEO中有哪些作用
    核心关键词的基础三度一般是指在筛选网站核心关键词时考虑的相关度、流行度和竞争度这三个重要因素。这三个因素对于确定一个关键词在搜索引擎优化(SEO)中的价值和有效性至关重要。首先,相关度指的是关键词与网站内容之间的匹配程度。一个高度相关的关键词意味着它与网站......
  • 说说HTTP 常见的状态码有哪些,适用场景?
     一、是什么HTTP状态码(英语:HTTPStatusCode),用以表示网页服务器超文本传输协议响应状态的3位数字代码它由RFC2616规范定义的,并得到 RFC2518、RFC2817、RFC2295、RFC2774与 RFC4918等规范扩展简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态......
  • 抠图软件有哪些?提升图片处理效率
    春天,总是以其绚烂的花朵俘获人心。我们常说,春天的浪漫是花儿赋予的,而将这份浪漫永恒定格的,是我们的镜头。花儿的盛开总能带来一份美好的心情。只是拍摄花朵时常会受到周围环境的影响,让花的美丽难以突显。幸好,抠图功能的出现解决了这一难题。通过抠图功能,我们可以突出花朵的美,......
  • https加密过程
    1.对称加密与非对称加密在介绍https加密过程前,需要先简单了解下其中用到的加密算法。对称加密算法:用该密钥加密的数据,可以再用该密钥解密。性能高,速度快。常见的对称加密算法有DES,AES。非对称加密算法:生成一对密钥对,分别称为公钥、私钥。用公钥加密的数据只能由私钥解密。用私......
  • Webbrowser打开https网页提示证书错误
    vb.net开发了一个捕快网文采集器 txt文本使用了IE控件Webbrowser在访问https网页时,有些网页出现了证书错误的提示,无法访问,而且没有"继续"的选项试了一下强制默认证书认证全部为<真>的代码有效.ImportsSystem.Security.Cryptography.X509Certificates......
  • https怎么免费申请
    在互联网技术高速发展的今天,越来越多的用户和企业开始关注网络安全问题,尤其是网站的安全。HTTPS(安全超文本传输协议)作为一种安全的网站传输协议,已经成为了互联网行业的标配。然而,对于很多个人和中小企业来说,如何申请免费的HTTPS证书仍然是一个难题。本文将为大家详细介绍如何......
  • CentOs云服务器安装docker+前端部署(仅http)
    安装dockersudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.reposudoyuminstalldocker-cedocker-ce-clicontainerd.io设置开机自启:systemctlenabledocker.service创建docker网络,网络名字自定义dockernetworkcreatebalab......