一篇文章理解前端的请求头和响应头含义

devtools/2024/12/22 0:45:04/

1.前言

作为一名前端开发必不可少的就是会和请求接口打交道,那么也应该理解请求头和响应头的含义,方便分析和快速定位问题及时解决。

通过这篇文章主要介绍比较常用的请求头响应头,希望能对大家有所帮助。

2.什么是请求头和响应头

请求头和响应头就是HTTP协议的组成部分,请求头和响应头用于在客户端(浏览器)和服务器之间传递额外的属性,这些属性内容用于控制HTTP请求和响应的行为。

请求头是客户端传给服务端的,响应头是服务端传给客户端的。

3.常见的请求头含义

Accept

含义:表示指定客户端能接受哪些类型的内容。 当客户端调用请求接口时候,设置Accept会要求服务器返回那些合适的类型格式。

例如:

accept: application/json, text/plain,

Accept-Charset

含义:表示指定客户端能接受那些类型的字符集。

例如:

Accept-Charset: utf-8, iso-8859-1;q=0.5

Cookie

含义:表示用于存储用户特定的信息,可以识别用户的具体身份。通过Cookie传递用户ID,让服务端识别用户身份。

例如:

Cookie: session=abPC9527; user=tty

Origin

含义:表示跨域相关信息,用于设置CORS的请求,可以防止陌生的域的请求和访问。

例如:

Origin: https://tty.com

Referer

含义:表示当前的请求从哪个url传递过来。

例如:

Referer: https://tty.com/pageone

User-Agent

含义:表示包含发起请求的用户的一些代理信息,比如浏览器的具体版本和具体类型。

例如:

User-Agent: Mozilla/3.0 (Windows NT 9.0; Win32; x64) AppleWebKit/517.36 (KHTML, like Gecko) Chrome/56.0.3029.110 Safari/517.3

If-Modified-Since

含义:表示客户端在上次获取资源的具体时间。

例如:

If-Modified-Since: Tue, 10 Oct 2021 11:01:01 GMT

Range

含义:表示指定第一个字节到指定最后字节之间的位置,告诉服务器想获取哪个范围的数据。

例如:

Range: bytes=0-255

4.常见的响应头含义

Access-Control-Allow-Origin

含义:表示用于配置CORS跨域相关信息,指定允许访问资源的域名,如果配置为*则表示可访问所有。

例如:

Access-Control-Allow-Origin: *

Cache-Control

含义:表示缓存机制的缓存策略。

例如:

Cache-Control:public  // 响应会被缓存
Cache-Control:no-store  // 在任何条件下,响应都不会被缓存
Cache-Control:must-revalidate  // 指定条件下会缓存重用
Cache-Control:max-age=10 // 设置缓存的有效时间
Cache-Control:no-cache  // 直接向服务器端请求最新资源,不缓存

Content-Length

含义:表示当前响应体的具体大小,具体单位为字节。

例如:

Content-Length: 9527

Content-Type

含义:表示响应体的具体数据格式是什么。

例如:

Content-Type: application/json

Date

含义:表示服务器开始对客户端发送响应的具体时间。

例如:

Date: Tue, 10 Oct 2021 11:01:01 GMT

ETag

含义:表示用于验证缓存,确保当前的资源未被修改过。如果没有更改过则返回304状态码,减少不必要传输。

例如:

ETag: "1234952790pc"

Location

含义:表示用于重定向,指向一个新的URL。

例如:

Location: https://tty.com/new-page

Set-Cookie

含义:表示服务器通过这个请求头把cookie带到客户端。客户端会在后面请求中自动将这cookie放在请求头中。

例如:

Set-Cookie: session=pc9527; Path=/; HttpOnly; Secure

Server

含义:表示告诉服务器软件的信息,例如版本号信息。

例如:

Server: Apache/1.4.38 (Ubuntu)

X-Powered-By

含义:表示返回后端使用的具体框架或技术栈。

例如:

X-Powered-By: Express

Content-Encoding

含义:表示响应体的编码方式,例如gzip压缩。

例如:

Content-Encoding: gzip

Last-Modified

含义:表示资源最后被修改的具体时间。

例如:

Last-Modified: Tue, 10 Oct 2021 11:00:00 GMT

Expires

含义:跟缓存相关,表示指定资源的过期时间,这个时间前都不过期。

例如:

Expires: Wed, 21 Oct 2021 07:21:00 GMT

5.总结

在平时的开发工作和日常写代码时都会遇到这些内容,里面涉及了一些缓存、跨域和安全相关等内容,只有了解这些请求头和响应头的含义才能快速定位和解决相关问题。


http://www.ppmy.cn/devtools/144227.html

相关文章

线性代数判断两条线方向相反(python)

以下是几种可以通过线性代数相关知识来判断两条线方向相反的方法,以下假设两条线都是二维平面上的线段,线 a 的端点坐标为 (x1_a, y1_a) 和 (x2_a, y2_a) ,线 b 的端点坐标为 (x1_b, y1_b) 和 (x2_b, y2_b) ,对应你给出的示例中 x…

SpringBoot集成ENC对配置文件进行加密

在线MD5生成工具 配置文件加密&#xff0c;集成ENC 引入POM依赖 <!-- ENC配置文件加密 --><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.2</ver…

dolphinscheduler服务RPC框架源码解析(八)RPC提供者服务整合Spring框架实现

RPC提供者服务整合Spring框架实现 1.概述2.整合设计2.1.设计分析2.2.实现类关系设计3.整合实现3.1.WorkerServer启动3.2.WorkerRpcServer启动3.3.SpringServerMethodInvokerDiscovery类3.4.扫描注册RPC提供者的ServerMethodInvoker对象3.5.谁来执行扫描注册3.6. 注册ServerMeth…

使用pyinstaller打包pyqt的程序,运行后提示ModuleNotFoundError: No module named ‘Ui_main‘

环境&#xff1a;windowpython3.9pyqt6 使用pyqt UI编辑器生成了main.ui &#xff0c;main.ui编译成了Ui_main.py main.py 使用当前目录下的Ui_main.py。 打包过程没报错&#xff0c;运行报错。 错误如下: 解决方法&#xff1a;pyinstaller -Fw main.py --paths. 使…

解决docker环境下aspose-words转换word成pdf后乱码问题

描述 环境&#xff1a;docker 部署工具&#xff1a;Jenkins 需求&#xff1a;本地上传的word文档需要转换成pdf 问题&#xff1a;转换之后的pdf文档出现小框框&#xff08;乱码&#xff09; 转换成PDF的操作 pom&#xff1a; <dependency><groupId>org.apach…

安装指南|OpenCSG Starship上架GitHub Marketplace

在代码开发的日常中&#xff0c;你是否常常被以下问题困扰&#xff1f; 代码审查耗时太长&#xff0c;拖慢项目进度&#xff1f; 审查质量参差不齐&#xff0c;一些关键问题被遗漏&#xff1f; 复杂代码变更看不懂&#xff0c;审查者需要大量时间理解意图&#xff1f; 别担…

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失&#xff0c;找不到具体原因的思路 先说下常见的几种原因&#xff1a; 1、删除的文件未释放空间 2、日志或过期文件未及时清理 3、inode导致 4、隐藏文件夹或者目录 6、磁盘碎片 最后一种单独介绍。 环境&#xff1a;情况是根分区&#xff08;/&#xf…

流程图(一)利用python绘制弦图

流程图&#xff08;一&#xff09;利用python绘制弦图 弦图&#xff08;Chord diagram&#xff09;简介 数据围绕一个圆呈放射状排列&#xff0c;显示不同实体之间的相互关系&#xff0c;这既是弦图。弦图通过每个圆弧的大小比例表示连接分配数值&#xff0c;可以用颜色将数据…