header响应头

什么是header


HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看。

使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。


header类型

根据不同上下文,可将消息头分为:

  • Request headers: 从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
Accept:用户代理可处理的媒体类型
Accept-Charset:优先的字符集
Accept-Encoding:优先的内容编码
Accept-Language:优先的语言
Host:请求资源所在服务器
User-Agent:HTTP客户端的信息

以Accept来讲:

Accept: text/plain;q=0.3,text/html

Accept首部字段可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用type/subtype这种形式,一次指定多种媒体类型。q代表的是权重值。

下面是一些常用的媒体类型的例子:



当服务器提供多种内容时,将会首先返回权重值最高的媒体类型。

  • Response headers: 从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
Accept-Ranges:是否接受字节范围要求
Age:推算资源创建经过时间
Etag:资源的匹配信息
Location:令客户端重定向值指定URI
  • Entity headers: 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。
Allow:资源可支持的HTTP方法
Content-Encoding:实体主体使用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的大小(单位:字节)
Content-Type:实体主体的媒体类型  
//例子
Content-type:application/json
Content-Type:text/plain;charset=utf-8

Content-type对照表

  • General headers: 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
Cache-Control:控制缓存行为
Connection:逐跳首部,链接的管理
Date:创建报文的日期
Warning:错误通知,通常会告知用户一些与缓存相关的问题的警告

如何设置header

客户端

在发送Ajax请求(实质是一个HTTP请求)时,我们可能需要设置上述一些请求头部信息,比如content-typeconnectioncookieaccept-xxx等。xhr提供了setRequestHeader来允许我们修改请求 header。

xhr.setRequestHeader(header, value);
  • 方法的第一个参数 header 大小写不敏感,即可以写成content-type,也可以写成Content-Type,甚至写成content-Type;

  • Content-Type的默认值与具体发送的数据类型有关(详情)。

  • setRequestHeader必须在open()方法之后,send()方法之前调用,否则会抛错;

需要注意的是,安全起见,有些请求头的值只能由user agent设置:forbidden header namesforbidden response header names.

服务器端

以Node.js为例

  response.writeHead(状态码,{header键值对});
  response.setHeader(header键值对);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文是《图解HTTP》读书笔记的第二篇,主要包括此书的第六章内容,因为第六章的内容较多,而且比较重要,所以单独写为...
    lijiankun24阅读 5,269评论 0 6
  • Web 页面的实现 Web 基于 HTTP 协议通信 客户端(Client)的 Web 浏览器从 Web 服务器端...
    毛圈阅读 4,918评论 0 2
  • HTTP 首部 HTTP 报文首部 HTTP 协议的请求和响应报文中必定包含 HTTP 首部。首部内容为客 户端和...
    Gu_Ran阅读 4,132评论 0 3
  • HTTP请求报文: HTTP响应报文: 使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息...
    大唐雷恋阅读 4,525评论 0 1
  • 最近大火的《旅行青蛙》可谓是刷爆了朋友圈,比起前几天集体养“老公”的《恋与制作人》,这款佛系“养娃”游戏俘获了一大...
    楠姐说故事阅读 10,238评论 2 4

友情链接更多精彩内容