HTTP头部解析

当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器。你明白HTTP请求头的具体含意吗?下面一条条的为你详细解读,先看某一次HTTP请求头的具体内容:

  Accept-Language: zh-cn,zh;q=0.5
  Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/5.0 (compatible; 域名)
  Host: 域名
  Connection: Keep-Alive

 下面根据以上HTTP请求内容的先后顺序一条条的解读:

工具/原料

  • IE浏览器

步骤/方法

  1.   Accept-Language: zh-cn,zh;q=0.5

      意思:浏览器支持的语言分别是中文和简体中文,优先支持简体中文。

      详解:

      Accept-Language表示浏览器所支持的语言类型;

      zh-cn表示简体中文;zh 表示中文;

      q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。

  2.  

      Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7

      意思:浏览器支持的字符编码分别是 GB2312、utf-8 和任意字符,优先顺序是 GB2312、utf-8、*。

      详解:

      Accept-Charset告诉 Web 服务器,浏览器可以接受哪些字符编码;

      GB2312是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312 编码通行于中国大陆;新加坡等地也采用此编码。

      utf-8是 Unicode 的一种变长字符编码又称万国码,由 Ken Thompson 于1992年创建,现在已经标准化为 RFC 3629。

      *表示任意字符编码,虽然 q 都是等于 0.7,但明确指定的 GB2312,utf-8 比 * 具有更高的优先级。

  3.  

      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

      意思:浏览器支持的 MIME 类型分别是 text/html、application/xhtml+xml、application/xml 和 */*,优先顺序是它们从左到右的排列顺序。

      详解:

      Accept表示浏览器支持的 MIME 类型;

      MIME的英文全称是 Multipurpose Internet Mail Extensions(多功能 Internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。

      text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subtype(子类型);type 指定大的范围,subtype 是 type 中范围更明确的类型,即大类中的小类。

      Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;

      text/html表示 html 文档;

      Application:用于传输应用程序数据或者二进制数据;

      application/xhtml+xml表示 xhtml 文档;

      application/xml表示 xml 文档。

  4.  

      Accept-Encoding: gzip, deflate

      意思:浏览器支持的压缩编码是 gzip 和 deflate。

      详解:

      Accept-Encoding表示浏览器有能力解码的编码类型;

      gzip是 GNU zip 的缩写,它是一个 GNU 自由软件的文件压缩程序,也经常用来表示 gzip 这种文件格式。

      deflate是同时使用了 LZ77 算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。

  5.  

      User-Agent: Mozilla/5.0 (compatible;域名)

      意思:使用的用户代理是 Mozilla/5.0 (compatible; 域名)。

      详解:

      User-Agent(用户代理),简称 UA,它是一个特殊字符串头,使得服务器能够识别客户端使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

      Mozilla/5.0:Mozilla 是浏览器名,版本是 5.0;

      compatible(兼容的)表示平台是兼容模式;

  6.  

      Host: 域名

      Host表示请求的服务器网址;

  7.  

      Connection: Keep-Alive

      Connection表示客户端与服务连接类型;

      Keep-Alive表示持久连接;

时间: 2024-09-30 10:37:25

HTTP头部解析的相关文章

【修复】PHP multipart/form-data头部解析远程拒绝服务漏洞

PHP multipart/form-data头部解析远程拒绝服务漏洞 受影响的软件及系统:====================PHP 5.0.0 - 5.0.5PHP 5.1.0 - 5.1.6PHP 5.2.0 - 5.2.17PHP 5.3.0 - 5.3.29PHP 5.4.0 - 5.4.40PHP 5.5.0 - 5.5.24PHP 5.6.0 - 5.6.8 未受影响的软件及系统:======================PHP 5.4.41PHP 5.5.25 PHP 5.

音频文件解析(一):WAV格式文件头部解析

WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源. 1.RIFF块(RIFF-Chunk) 偏移地址 字节数 数据类型 内容 &H00 4 String 'RIFF'文件标志 &H04 4 UInteger 文件总长 &H08  4  String  'WAVE'文件标志 2.格式化块(Format-Chunk) 偏移地址 字节数 数据类

PHP模拟发送POST请求之一、HTTP协议头部解析

WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我将结合自己的笔记和理解,详细解释PHP进行POST请求的几种方法,如有错误,烦请指正. HTTP协议信息是WEB开发中的一项重要内容,了解它可以帮助我们更深刻地理解BS交互,也有利于我们从更底层理解WEB开发.HTTP协议是一种简单灵活方便的通讯协议,并且要记住,它是一种无状态的协议,即它是一种无记

移动端页面头部解析

viewport(视口) 视口可控制网页在移动设备上的显示方式.如果未指定视口,移动设备将以典型桌面屏幕的宽度来呈现网页,并调整网页使其适合屏幕大小.通过设置视口,您可以控制网页在不同设备上的宽度和缩放比例.下图是safari开发者文档中的图示: ViewPort 标记 ViewPort 标记用于指定用户是否可以缩放Web页面,如果可以,那么缩放到的最大和最小缩放比例是什么.使用ViewPort 标记还表示文档针对移动设备进行了优化.ViewPort 标记的content值是由指令及其值组成的以

Spring MVC之LocaleResolver(解析用户区域)

为了让web应用程序支持国际化,必须识别每个用户的首选区域,并根据这个区域显示内容. 在Spring MVC应用程序中,用户的区域是通过区域解析器来识别的,它必须实现LocaleResolver接口.Spring MVC提供了几个LocaleResolver实现,让你可以按照不同的条件来解析区域.除此之外,你还可以实现这个接口,创建自己的区域解析器. 要定义一个区域解析器,只需在web应用程序上下文中注册一个LocaleResolver类型的Bean就可以了.你必须将区域解析器的Bean名称设置

TCP/IP头部详解

在网上找了很多有关tcp/ip头部解析的资料,都是类似于下面的结构 抽象出图文是这种结构,但是在底层中数据到底是怎么传输的呢?没有答案,在深入学习之后,总结出数据传输的方式 IP数据包头部格式: 上面是在数据到达传输层对数据进行IP头部封装的数据 TCP协议 TCP协议是传输协议,为应用层提供数据服务,和UDP不同,TCP提供可靠的面向连接服务,关于TCP头部数据格式的说明 跟IP头部差不多,基本长度为20个字节,基本介绍到此为止,详解在网上多如牛毛,下面用两台pc建立连接为例说明: 主机1:I

套接字输入缓冲装置——InternalInputBuffer

互联网的世界很复杂,信息从一端传向另一端过程也相当复杂,中间可能通过若干个硬件,为了提高发送和接收效率,在发送端及接收端都将引入缓冲区,所以两端的套接字都拥有各自的缓冲区,当然这种缓冲区的引入也带来了不确定的延时,在发送端一般先将消息写入缓冲区,直到缓冲区填满才发送,而接收端则一次只读取最多不超过缓冲区大小的消息. Tomcat在处理客户端的请求时需要读取客户端的请求数据,它同样需要一个缓冲区用于接收字节流,即套接字输入缓冲装置,它主要的责任是提供一种缓冲模式从socket中读取字节流,提供填充

Tinywebserver:一个简易的web服务器

这是学习网络编程后写的一个练手的小程序,可以帮助复习I/O模型,epoll使用,线程池,HTTP协议等内容. 程序代码是基于<Linux高性能服务器编程>一书编写的. 首先回顾程序中的核心内容和主要问题,最后给出相关代码. 0. 功能和I/O模型 实现简易的HTTP服务端,现仅支持GET方法,通过浏览器访问可以返回相应内容. I/O模型采用Reactor(I/O复用 + 非阻塞I/O) + 线程池. 使用epoll事件循环用作事件通知,如果listenfd上可读,则调用accept,把新建的f

nodejs api 中文文档

文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 关于本文档 稳定度 JSON 输出 概述 全局对象 global process console 类: Buffer require() require.resolve() require.cache require.extensions __filename __dirname module e