什么是请求头?常见的请求头有哪些?

简介: 请求头(Request Headers)是在HTTP协议中用于传递关于请求的额外信息的部分。它包含了客户端(通常是浏览器或应用程序)与服务器之间进行通信所需的元数据

一、什么是请求头?

请求头(Request Headers)是在HTTP协议中用于传递关于请求的额外信息的部分。它包含了客户端(通常是浏览器或应用程序)与服务器之间进行通信所需的元数据。


请求头的作用有以下几个方面:


  1. 传递请求的附加信息:请求头可以携带一些客户端相关的信息,如用户代理(User-Agent)、接受的内容类型(Accept)、身份验证凭证(Authorization)等。这些信息可以帮助服务器更好地理解和处理请求。

  2. 控制缓存行为:通过请求头中的Cache-Control字段,客户端可以告知服务器如何处理响应的缓存,包括是否使用缓存、缓存的有效期等。

  3. 进行身份验证:请求头中的Authorization字段常用于传递身份验证凭证,如基本认证(Basic Authentication)或令牌(Token)。服务器可以根据这些凭证对请求进行身份验证,以确定是否允许访问受保护的资源。

  4. 控制请求体的格式:Content-Type字段指定了请求体中数据的格式类型,如JSON、表单数据等。服务器可以根据Content-Type来正确解析请求体中的数据。

  5. 提供跳转来源信息:Referer字段指示了当前请求是从哪个URL页面发起的,可以帮助服务器识别请求的来源。


通过请求头,客户端可以向服务器提供更多的信息,以便服务器能够根据这些信息做出相应的处理和响应。同时,服务器也可以使用请求头来控制和管理请求的行为,确保通信的顺利进行。


二、常见的请求头有哪些?

在PHP中,常见的请求头(Request Headers)包括以下几个:


  1. User-Agent:标识客户端使用的浏览器和操作系统信息。可以通过$_SERVER['HTTP_USER_AGENT']获取。

  2. Accept:指定客户端能够处理的内容类型,即可接受的媒体类型。可以通过$_SERVER['HTTP_ACCEPT']获取。

  3. Content-Type:指定请求体中的数据格式类型。常见的取值有application/json、application/x-www-form-urlencoded等。可以通过$_SERVER['CONTENT_TYPE']获取。

  4. Authorization:用于进行身份验证的凭证信息。常见的取值有Bearer Token、Basic Authentication等。可以通过$_SERVER['HTTP_AUTHORIZATION']获取。

  5. Cookie:包含来自客户端的Cookie信息。可以通过$_SERVER['HTTP_COOKIE']获取。

  6. Referer:指示当前请求是从哪个URL页面发起的。可以通过$_SERVER['HTTP_REFERER']获取。

  7. Host:指定服务器的域名或IP地址。可以通过$_SERVER['HTTP_HOST']获取。

  8. X-Requested-With:指示请求是否由Ajax发起的。通常在Ajax请求中会设置该头部字段,取值为"XMLHttpRequest"。可以通过$_SERVER['HTTP_X_REQUESTED_WITH']获取。

  9. Content-Length:指定请求体的长度。可以通过$_SERVER['CONTENT_LENGTH']获取。

  10. Cache-Control:控制缓存行为的指令。用于指定客户端和代理服务器如何缓存响应。可以通过$_SERVER['HTTP_CACHE_CONTROL']获取。


这些是PHP中常见的请求头,可以使用$_SERVER超全局变量来获取它们的值。根据具体的需求,你可以在PHP中通过相应的方法或变量来处理这些请求头信息


三、常见的http头部?

在 PHP 中,常见的 HTTP 头部(HTTP Headers)可以通过 header() 函数来设置。以下是一些常见的 HTTP 头部及其用途:


Content-Type:指定服务器返回的响应内容类型。常见取值有 text/html、application/json、image/jpeg 等。

header('Content-Type: text/html; charset=utf-8');


Location:用于重定向到其他页面。当服务器需要将客户端重定向到另一个页面时,可以设置 Location 头部。


header('Location: http://example.com/redirected-page');


Cache-Control:设置缓存控制策略,用于指示客户端或中间代理如何缓存响应。常见的取值有 no-cachemax-age 等。


header('Cache-Control: no-cache, max-age=0');


Expires:设置响应的过期时间。指定一个日期和时间,在该时间之后,客户端将不再使用缓存的副本。


$expires = gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT'; header('Expires: ' . $expires);


Set-Cookie:设置要在客户端存储的 Cookie 值。可以使用该头部为客户端设置会话标识符、跟踪信息等。


setcookie('name', 'value', time() + 3600, '/'); header('Set-Cookie: name=value; expires=Wed, 01-Sep-2023 00:00:00 GMT; path=/');


php复制代码Access-Control-Allow-Origin:用于跨域请求时,指定允许访问资源的源。可以设置为特定域名或 *(表示允许任意来源)。


header('Access-Control-Allow-Origin: https://example.com');


Content-Disposition:指示客户端如何处理服务器返回的响应体。常见用途是设置响应为下载文件。


header('Content-Disposition: attachment; filename="file.txt"');
目录
相关文章
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
47883 13
|
存储 前端开发 安全
GET 和 POST 请求:理解它们之间的区别和适用场景
GET 和 POST 请求:理解它们之间的区别和适用场景
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
68805 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
11月前
|
网络协议 算法 网络性能优化
|
NoSQL 前端开发 Redis
Windows 下安装和配置 Redis (图文教程)
Windows 下安装和配置 Redis (图文教程)
|
XML JSON 数据格式
探索 HTTP 请求的世界:get 和 post 的奥秘(上)
探索 HTTP 请求的世界:get 和 post 的奥秘(上)
探索 HTTP 请求的世界:get 和 post 的奥秘(上)
|
缓存 JSON 前端开发
探索 HTTP 请求的世界:get 和 post 的奥秘(下)
探索 HTTP 请求的世界:get 和 post 的奥秘(下)
探索 HTTP 请求的世界:get 和 post 的奥秘(下)
|
JSON 数据格式
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
postman 实用教程(含带 token 访问需登录权限的接口、测试文件上传接口、测试文件下载接口)
5058 0
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
31113 2
微服务架构最强讲解,那叫一个通俗易懂!
|
存储 安全 API
掌握 HTTP Authorization 头:关键知识点解析
在当今的互联网世界中,安全性贯穿于 web 应用的每个方面,HTTP Authorization 头的使用在这个过程中扮演着不可或缺的角色。它是 HTTP 请求中的一个重要部分,用来在客户端和服务器之间安全地传输认证信息。用途广泛,无论是浏览器还是其他客户端应用,都依赖它来验证用户的访问权限。本文旨在详细解读 HTTP Authorization 头的定义、使用方式以及不同的认证机制。