Http Requests Header

姊妹篇:

Http Requests Header

Go初始化Http Client

Go使用自定义Http Client

https://www.sojson.com/httpRequest/

http://coolaf.com/zh

https://tonydeng.github.io/2015/07/10/httpie-howto/

HTTP请求头(HTTP Request Headers)是在HTTP请求中包含的键值对,它们提供了有关请求或关于客户端自身的信息。请求头在HTTP请求的开始部分发送,用于向服务器传达额外的信息和请求的上下文。请求头对于Web开发和API交云中非常重要,因为它们控制了请求的行为、描述了请求的内容、指示了客户端的偏好设置等。

作用

  1. 客户端信息:请求头可以包含有关客户端或用户代理(浏览器)的信息,例如使用的浏览器类型和版本。
  2. 内容类型:指示请求中包含的内容类型,例如表单数据、JSON、XML等。
  3. 认证:在请求中包含认证信息,如令牌或凭证,用于访问受保护的资源。
  4. 缓存控制:指示关于请求和响应缓存的策略。
  5. 连接管理:例如,可以指定请求是否应保持连接开放以便发送后续请求。
  6. 条件请求:基于特定条件(如修改日期)执行请求。
  7. 重定向和跨域请求:管理重定向行为和跨源资源共享(CORS)。

常见的HTTP请求头

  • Accept:客户端能够接收的内容类型,如text/htmlapplication/json
  • Accept-Encoding:客户端能够理解的内容编码方式,如gzipdeflate
  • Authorization:用于认证的信息,如Bearer令牌或基本认证的凭证。
  • Content-Type:请求体的媒体类型,例如在POST请求中发送数据时使用。
  • User-Agent:发起请求的客户端信息,通常包括浏览器类型、版本和操作系统。
  • Host:请求将发送到的服务器的域名。
  • Cookie:发送到服务器的Cookie。
  • Referer:包含了当前请求页面的来源页面的地址。
  • Connection:控制当前事务完成后是否关闭网络连接,常用值keep-alive
  • Cache-Control:指示请求和响应遵循的缓存机制。

使用示例

假设你想用curl命令行工具发送一个HTTP GET请求,并指定接受JSON格式的响应,你可以这样使用请求头:

1
curl -H "Accept: application/json" http://example.com/api/data

在这个示例中,-H参数用于添加请求头Accept: application/json,告诉服务器客户端希望接收JSON格式的数据。


请向我介绍更多HTTP请求头


HTTP请求头(HTTP Request Headers)是在HTTP请求中发送的键值对,它们提供了有关请求或客户端本身的信息。请求头可以包含客户端环境的各种信息,如浏览器类型、优先接收的语言、请求的资源类型等,还可以包含身份验证信息。请求头对于服务器来说是非常重要的,因为它们帮助服务器理解和处理请求。

常见的HTTP请求头:

  1. Accept:指定客户端能够接收的内容类型,如Accept: text/html表示客户端期望接收HTML文档。

  2. Accept-Encoding:指示客户端能够理解的内容编码方式,如gzipdeflate

  3. Accept-Language:指定客户端偏好的自然语言,如Accept-Language: en-US表示偏好美式英语。

  4. Authorization:包含证明客户端有权查看特定资源的凭证。常用于需要认证的资源访问。

  5. Cache-Control:指示请求/响应链上所有的缓存机制必须服从的指令,如no-cache指示资源不应该被缓存。

  6. Connection:控制客户端和服务器之间的连接管理,如Connection: keep-alive表示希望保持连接打开,以便之后的请求可以复用。

  7. Content-Length:请求体的大小(以字节为单位)。只在含有请求体时使用。

  8. Content-Type:请求体的MIME类型,如Content-Type: application/json表示请求体是一个JSON文档。

  9. Cookie:服务器通过Set-Cookie响应头发送的一个或多个cookie,客户端可以将它们存储并与后续请求一起发送回服务器。

  10. Host:指定请求将发送到哪个主机和端口号。这对于虚拟主机很重要,因为一个服务器可能托管多个域名。

  11. If-Modified-Since:允许客户端进行条件式请求,询问自指定时间以来是否对资源进行了修改。

  12. Referer:包含一个URL,用户从该URL代表的页面通过点击链接到达当前请求的页面。

  13. User-Agent:包含有关客户端软件的信息,如浏览器类型、版本以及操作系统。

  14. X-Requested-With:主要用于识别Ajax请求。大多数JavaScript框架发送此字段并设置为XMLHttpRequest

使用示例:

在使用HTTP客户端(如curl)或编写代码(使用HTTP库,如Python的requests或JavaScript的fetch)进行HTTP请求时,可以设置这些请求头。例如,使用curl发送包含某些请求头的HTTP GET请求:

1
curl -H "Accept: application/json" -H "User-Agent: MyClient/1.0" http://example.com

这条命令向http://example.com发送一个GET请求,请求头指示客户端接受JSON响应,并且提供了自定义的User-Agent值。

请求头对于开发Web应用和API非常重要,因为它们提供了控制请求和根据客户端需求定制响应的能力。