首页 > 试题广场 >

常见的HTTP协议响应头有哪些?

[问答题]
常见的HTTP协议响应头有哪些?
推荐

得分点

​ 响应头:cache-control、content-type、content-encoding、server、transfer-encoding、expires、connection、etag、refresh、access-control-allow-origin、access-control-allow-methods、content-range。

参考答案

标准回答

​ 常见的HTTP响应头有:cache-control,设置缓存方式。content-type,表明资源文件的类型。content-encoding,表明资源的编码。server,服务器的版本。transfer-encoding,资源是分块发送的。expires,设置缓存,优先级比cache-control低。connection,表明是长连接还是短连接。etag,文件的一个标志。refresh,用于重定向。access-control-allow-origin,允许跨域的站点。access-control-allow-methods,跨域请求的请求方法。content-range,文件长度。

加分回答

​ 常见的HTTP响应头有:

  • Cache-Control:
    • private:默认为private 响应只能够作为私有的缓存,不能再用户间共享
    • public:浏览器和缓存服务器都可以缓存页面信息。
    • must-revalidate:对于客户机的每次请求,代理服务器必须想服务器验证缓存是否过时。
    • no-cache:浏览器和缓存服务器都不应该缓存页面信息。
    • max-age=x:通知浏览器x秒之内不要烦我,自己从缓冲区中刷新。
    • no-store:请求和响应的信息都不应该被存储在对方的磁盘系统中。
  • Content-Type:text/html;charset=UTF-8,告诉客户端,资源文件的类型,还有字符编码,客户端通过utf-8对资源进行解码,然后对资源进行html解析。通常我们会看到有些网站是乱码的,往往就是服务器端没有返回正确的编码。
  • Content-Encoding:zip,告诉客户端,服务端发送的资源是采用gzip编码的,客户端看到这个信息后,应该采用gzip对资源进行解码。
  • Date:03 Apr 2018 03:52:28 GMT,这个是服务端发送资源时的服务器时间,GMT是格林尼治所在地的标准时间。http协议中发送的时间都是GMT的,这主要是解决在互联网上,不同时区在相互请求资源的时候,时间混乱问题。
  • Server:Tengine/1.4.6,这个是服务器和相对应的版本,只是告诉客户端服务器信息。
  • Transfer-Encoding:chunked。这个响应头告诉客户端,服务器发送的资源的方式是分块发送的。一般分块发送的资源都是服务器动态生成的,在发送时还不知道发送资源的大小,所以采用分块发送,每一块都是独立的,独立的块都能标示自己的长度,最后一块是0长度的,当客户端读到这个0长度的块时,就可以确定资源已经传输完了。
  • Expires:Sun, 1 Jan 2000 01:00:00 GMT,这个响应头也是跟缓存有关的,告诉客户端在这个时间前,可以直接访问缓存副本,很显然这个值会存在问题,因为客户端和服务器的时间不一定会都是相同的,如果时间不同就会导致问题。所以这个响应头是没有max-age=x这个响应头准确的,因为max-age=x中的x是个相对时间,不仅更好理解,也更准确。
  • Connection:keep-alive,这个字段作为回应客户端的Connection:keep-alive,告诉客户端服务器的tcp连接也是一个长连接,客户端可以继续使用这个tcp连接发送http请求。
  • Etag:就是一个对象的标志值,就一个对象而言,比如一个html文件,如果被修改了,其Etag也会别修改,所以,ETag的作用跟Last-Modified的作用差不多,主要供WEB服务器判断一个对象是否改变了。比如前一次请求某个html文件时,获得了其 ETag,当这次又请求这个文件时,浏览器就会把先前获得ETag值发送给WEB服务器,然后WEB服务器会把这个ETag跟该文件的当前ETag进行对比,然后就知道这个文件有没有改变了。
  • Refresh:用于重定向,或者当一个新的资源被创建时。默认会在5秒后刷新重定向。
  • Access-Control-Allow-Origin:代表允许跨域的站点,*星号代表所有站点都可以跨域访问。
  • Access-Control-Allow-Methods:允许哪些方法来访问。
  • Content-Range:bytes 0-5/7877,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。

延伸阅读

​ 缓存中的cache-control字段优先级是大于expires字段的,cache-control是http1.1提出的,expires是1.0提出的。expires的出现是为了解决浏览器时间被手动更改时候缓存判断的问题。如果两者同时出现,则使用cache-control。

编辑于 2021-09-15 15:23:26 回复(0)
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1  控制浏览器不要缓存
Cache-Control: no-cache  
Pragma: no-cache   
发表于 2021-12-03 10:00:19 回复(0)
常见的HTTP协议响应头有很多,以下是其中一些常见的响应头:

1. `Content-Type`:指定响应的媒体类型(例如:text/html、application/json)。
2. `Content-Length`:指定响应正文的长度(以字节为单位)。
3. `Server`:指定服务器软件的名称和版本。
4. `Date`:指定响应生成的日期和时间。
5. `Last-Modified`:指定资源的最后修改日期和时间。
6. `ETag`:指定资源的实体标识符,用于缓存验证。
7. `Expires`:指定响应的过期日期和时间。
8. `Cache-Control`:指定缓存机制的控制指令。
9. `Location`:指定重定向的目标 URL。
10. `Set-Cookie`:在客户端保存一个或多个 cookie。
11. `Access-Control-Allow-Origin`:指定允许访问资源的域名。
12. `Content-Encoding`:指定响应正文的编码方式(例如:gzip、deflate)。
13. `Content-Disposition`:指定响应正文的处理方式(例如:inline、attachment)。

这只是一些常见的响应头,实际上还有很多其他的响应头可以用于不同的目的和需求。
发表于 2023-05-16 16:54:27 回复(0)