HTTP 常见知识点之——最常见的请求头

本贴最后更新于 1903 天前,其中的信息可能已经时移世易

1.Accept:浏览器可接受的 MIME 类型。MIME 类型有很多种, 例如:

Accept:text/html,表明客户端希望接受 HTML 文本。 Accept:image/gif,表明客户端希望接受 GIF 图像格式的资源。 Accept:image/*,表明客户端可以接受所有image格式的子类型。 Accept:*/*,表明客户端可以接受所有格式的内容。

例如,如果浏览器和服务器同时支持 png 类型的图片,则浏览器可以发送包含 image/png 的 Accept 的头字段,服务器检查到 Accept 头中包含 image/png 这种 MIME 类型,可能在网页中的 img 元素中使用 png 类型的文件

2.Accept-Charset: 浏览器可接受的字符集

Accept-Charset:UTF-8,ISO-8859-1 <!-- 如果想指定多种字符集,则可以在 Accept-Charset 头字段中将指定的多个字符集以逗号分隔 -->

需要注意的是,

  • 如果 Accept-Charse t 头字段没有在请求头中出现,则说明客户端能接受使用任何字符集的数据。
  • 如果 Accept-Charset 头出现在请求消息里,但是服务器不能发送采用客户端期望字符集编码的文档,那么服务器将发送一个 406 错误状态响应,406 是一个响应状态码,表示服务器返回内容使用的字符集与 Accept-Charset 头字段指定的值不兼容。

3.Accept-Encoding: 浏览器能够进行解码的数据编码方式。这里的编码方式通常指的是某种压缩方式。

Accept-Encoding:gzip,compress <!-- 在 Accept-Encoding 头字段中,可以指定多个数据编码方式。它们之间以逗号分隔 -->

在上面的头字段中,gzipcompress 这两种格式是最常见的数据编码方式。在传输较大实体的内容之前,对其进行压缩编码,可以节省网络带宽和传输时间。服务器接收到这个请求头,它使用其中指定的一种格式对原始文档内容进行压缩编码,然后再将其作为响应消息的实体内容发送给客户端,并且在 Content-Encoding 响应头中指出实体内容所使用的压缩编码格式。浏览器在接收到这样的实体内容之后,需要对其进行反向解压缩。

需要注意的是,Accept-Encoding 和 Accept 消息头不同,Accept 请求头指定的 MIME 类型是指解压后的实体内容类型,Accept-Encoding 消息头指定的是实体内容压缩的方式。。

4.Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。

5.Authorization:授权信息,通常出现在对服务器发送的 WWW-Authenticate 头的应答中。

6.Connection:表示是否需要持久连接。

7.Content-Length:表示请求消息正文的长度。

8.Cookie:这是最重要的请求头信息之一

9.From:请求发送者的 email 地址,由一些特殊的 Web 客户程序使用,浏览器不会用到它。

10.Host:初始 URL 中的主机和端口。

11.If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回 304“Not Modifie d”应答。

12.Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

13.Referer:包含一个 URL,用户从该 URL 代表的页面出发访问当前请求的页面。

14.User-Agent:浏览器类型,如果 Servlet 返回的内容与浏览器类型有关则该值非常有用。

15.UA-PixelsUA-ColorUA-OSUA-CPU:由某些版本的 IE 浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和 CPU 类型。

百度百科:https://baike.baidu.com/item/http%E8%AF%B7%E6%B1%82%E5%A4%B4/6623287?fr=aladdin


  • HTTP
    75 引用 • 128 回帖 • 1 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖 • 2 关注
  • 总结
    209 引用 • 1758 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
BYwangbing
做你自己,生活自然如你所愿 南阳

推荐标签 标签

  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖 • 2 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 735 关注
  • CodeMirror
    2 引用 • 17 回帖 • 167 关注
  • 笔记

    好记性不如烂笔头。

    311 引用 • 794 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 248 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖 • 3 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 644 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 3 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 707 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖 • 2 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 675 关注
  • 叶归
    12 引用 • 56 回帖 • 20 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    372 引用 • 1857 回帖 • 2 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • Visio
    1 引用 • 2 回帖 • 2 关注
  • OneDrive
    2 引用 • 5 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    228 引用 • 476 回帖 • 2 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 195 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 37 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 66 关注