场景应用:常见的HTTP协议请求头有哪些?

简介: 场景应用:常见的HTTP协议请求头有哪些?

场景应用:常见的HTTP协议请求头有哪些?


文章目录

标准答案:

常见的HTTP请求头有:Accept,接收的数据类型。Accept-Language,接收的语言。Accept-Encoding,客户端的编码方式。Connection,长连接还是短链接。Host,客户端的主机和端口号。Referer,请求来源网站。User-Agent,客户端的系统和浏览器的信息。Cache-Control,缓存设置(重点)。Cookie,存储用户信息。Range,获取的数据部分。

扩展学习:

常见的HTTP请求头有:

Accept:

Accept:text/html浏览器可以接受服务器回发的类型为 text/html。

Accept:*/*代表浏览器可以处理所有类型(一般浏览器发给服务器都是发这个)。

Accept-Encoding:gzip、deflate。浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)。

Accept-Language:

浏览器申明自己接收的语言。

Connection:

Connection:keep-alive。当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。

Connection:close。代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建立TCP连接。

Host:

请求报文头部主要用于指定被请求资源的Internet主机和端口号,发送请求时,这个字段是必需的。

Referer

当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

User-Agent:

告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本。

Cache-Control:

Cache-Control:默认为private,响应只能够作为私有的缓存,不能再用户间共享。

Cache-Control:public。响应会被缓存,并且在多用户间共享。正常情况,如果要求HTTP认证,响应会自动设置为private。

Cache-Control:must-revalidate。响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。

Cache-Control:no-cache。响应不会被缓存,而是实时向服务器端请求资源。

Cache-Control:max-age。设置缓存最大的有效时间,但是这个参数定义的是时间大小,而不是确定的时间点。单位是秒。

Cache-Control:no-store在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。

Cookie:

用来存储一些用户信息以便让服务器辨别用户身份的(大多数需要登录的网站上面会比较常见),比如cookie会存储一些用户的用户名和密码,当用户登录后就会在客户端产生一个cookie来存储相关信息,这样浏览器通过读取cookie的信息去服务器上验证并通过后会判定你是合法用户,从而允许查看相应网页。当然cookie里面的数据不仅仅是上述范围,还有很多信息可以存储是cookie里面,比如sessionid等。

Range:

bytes=0-5。指定第一个字节的位置和最后一个字节的位置。用于告诉服务器自己想取对象的哪部分。

延伸阅读:

Connection字段中的keep-alive可以简单理解为一种状态保持或重用机制,比如当一条连接建立后,我们不想它立刻被关闭,如果实现了keep-alive机制,就可以通过它来实现连接的保持。

keep-alive在HTTP 1.0版本默认是关闭的,但在HTTP1.1是默认开启的;操作系统里TCP的keep-alive默认也是关闭,但一般应用都会修改设置来开启。因此网上TCP流量中基于keep-alive的是主流。那TCP为什么要用keep-alive呢?TCP的三次握手和四次挥手中的关闭机制看起来简单明了,但实际衍生出了各种问题,有的时候确实不希望中断空闲的TCP连接,因为建立一次TCP连接需要经过一到两次的网络交互,且由于TCP的slow-start机制,新的TCP连接开始数据传输速度是比较慢的,理想上希望通过连接池模式,保持一部分空闲连接,当需要传输数据时,可以从连接池中直接拿一个空闲的TCP连接来全速使用,这样对性能有很大提升为了支持这种情况,于是TCP实现了keep-alive机制。

相关文章
|
28天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
57 1
|
2月前
HTTP协议的状态码有哪些常见的类型,分别代表什么意思?
HTTP状态码三数字分五类:1xx(信息),2xx(成功),3xx(重定向),4xx(客户端错误),5xx(服务器错误)。例如,200表示请求成功,301表示永久重定向,404表示未找到,500表示服务器内部错误。这些代码帮助诊断网络问题。
20 2
|
2月前
|
网络协议 Linux
HTTP协议基本原理简介(二)
HTTP协议基本原理简介(二)
25 1
|
2月前
|
缓存 前端开发
HTTP协议基本原理简介(三)
HTTP协议基本原理简介(三)
15 1
|
1天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
2天前
|
网络协议 安全 算法
HTTP协议与HTTPS协议
HTTP协议与HTTPS协议
|
12天前
|
安全 网络安全 数据安全/隐私保护
HTTP代理SSL连接:保障网络安全的重要协议
HTTP代理SSL连接:保障网络安全的重要协议
|
12天前
|
缓存 网络协议
【计算机协议】第一章——HTTP协议详解
【计算机协议】第一章——HTTP协议详解
|
14天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
16天前
|
缓存 安全 网络协议
Http协议是什么
【4月更文挑战第12天】HTTP是用于从WWW服务器传输超文本到浏览器的协议,基于TCP/IP,特点包括无连接、无状态、面向对象、无阻塞和可缓存。它的工作原理是客户端发送请求,服务器处理后返回响应。自1989年创建以来,HTTP已发展支持多媒体内容传输,并通过HTTPS提供安全保护。学习更多可参考计算机网络技术文献。
20 6