前端网络基础面试题(三)
本文总结了前端网络基础相关常见的面试题,包括常见的HTTP请求头和相应头以及相关的含义。
HTTP请求头以及相关的含义
Accept
Accept: text/html 浏览器可以接受服务器回发的类型为 text/html。
Accept: / 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)。
Accept-Encoding
accept-encoding: gzip, deflate, br
浏览器接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)(注意:这不是只字符编码)。
Accept-Language
Accept-Language:zh-CN,zh;q=0.9
浏览器接收的语言。
Connection
Connection: keep-alive
当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
Connection: close
代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。
Host(发送请求时,该报头域是必需的)
Host:www.1024nav.com 请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。
Referer
Referer: https://www.1024nav.com 当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。
User-Agent
User-Agent: user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36
,告诉HTTP服务器,客户端使用的操作系统和浏览器的名称和版本。
Cache-Control
Cache-Control:private
默认为 private
响应只能够作为私有的缓存,不能再用户间共享
Cache-Control:public
响应会被缓存,并且在多用户间共享。正常情况, 如果要求HTTP认证,响应会自动设置为 private.
Cache-Control:must-revalidate
响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。
Cache-Control:no-cache
响应不会被缓存,而是实时向服务器端请求资源。
cache-control: max-age=31536000
设置缓存最大的有效时间,单位是秒。
Cache-Control:no-store
在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。
Cookie
Cookie 是用来存储一些用户信息以便让服务器辨别用户身份的(大多数需要登录的网站上面会比较常见),比如 Cookie 会存储一些用户的用户名和密码,当用户登录后就会在客户端产生一个 Cookie 来存储相关信息,这样浏览器通过读取 Cookie 的信息去服务器上验证并通过后会判定你是合法用户,从而允许查看相应网页。当然 Cookie 里面的数据不仅仅是上述范围,还有很多信息可以存储是 Cookie 里面,比如sessionid等。
Range(用于断点续传)
Range:bytes=0-5 指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分。