HTTP 响应头信息与前后端交互时content-type重要性

embedded/2024/12/28 15:11:49/
http://www.w3.org/2000/svg" style="display: none;">

以下是响应头的大部分属性

响应头信息中文翻译描述
Date日期响应生成的日期和时间。例如:Wed, 18 Apr 2024 12:00:00 GMT
Server服务器服务器软件的名称和版本。例如:Apache/2.4.1 (Unix)
Content-Type内容类型响应体的媒体类型(MIME类型),如text/html; charset=UTF-8, application/json等。
Content-Length内容长度响应体的大小,单位是字节。例如:3145
Content-Encoding内容编码响应体的压缩编码,如 gzip, deflate等。
Content-Language内容语言响应体的语言。例如:zh-CN
Content-Location内容位置响应体的 URI。例如:/index.html
Content-Range内容范围响应体的字节范围,用于分块传输。例如:bytes 0-999/8000
Cache-Control缓存控制控制响应的缓存行为, 如 no-cache 表示必须重新请求。
Connection连接管理连接的选项,如keep-alive或close,keep-alive 表示连接不会在传输后关闭
Set-Cookie设置 Cookie设置客户端的 cookie。例如:sessionId=abc123; Path=/; Secure
Expires过期时间响应体的过期日期和时间。例如:Thu, 18 Apr 2024 12:00:00 GMT
Last-Modified最后修改时间资源最后被修改的日期和时间。例如:Wed, 18 Apr 2024 11:00:00 GMT
ETag实体标签资源的特定版本的标识符。例如:“33a64df551425fcc55e6”
Location位置用于重定向的 URI。例如:/newresource
Pragma实现特定的指令包含实现特定的指令,如 no-cache。
WWW-Authenticate认证信息认证信息,通常用于HTTP认证。例如:Basic realm=“Access to the site”
Accept-Ranges接受范围指定可接受的请求范围类型。例如:bytes
Age经过时间响应生成后经过的秒数,从原始服务器生成到代理服务器。例如:24
Allow允许方法列出资源允许的 HTTP 方法 。例如:GET, POST,HEAD等
Vary变化告诉下游代理如何使用响应头信息来确定响应是否可以从缓存中获取。例如:Accept
Strict-Transport-Security严格传输安全指示浏览器仅通过 HTTPS 与服务器通信。例如:max-age=31536000; includeSubDomains
X-Frame-Options框架选项控制页面是否允许在框架中显示,防止点击劫持攻击。例如:SAMEORIGIN
X-Content-Type-Options内容类型选项指示浏览器不要尝试猜测资源的 MIME 类型。例如:nosniff
X-XSS-ProtectionXSS保护控制浏览器的 XSS 过滤和阻断。例如:1; mode=block
Public-Key-Pins公钥固定HTTP 头信息用于HTTP公共密钥固定(HPKP),一种安全机制,用于防止中间人攻击。例如:pin-sha256=“base64+primarykey”; pin-sha256=“base64+backupkey”; max-age=expireTime

在做前后端交互的时候需要注意的主要有age,allow,set-cookie,expires,Content-Type这几个字段
之中特别需要注意的是content-type
如果你写过后端,碰巧用的是java servlet的话,你一定用过这个方法 req.getParameter(“”);
如果你是下面情况
https://i-blog.csdnimg.cn/direct/4dcca56e65b64637a7d238d969d5886f.png" alt="在这里插入图片描述" />
当你与前端交流的话你可能会读不到这个值
这个需要前端使用content-type:application/x-www-form-urlencoded
这个协议主要处理参数比较少的请求,请求体大的话一般用application/json

今天我就碰到了,当我使用如下代码时

const xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8080/s', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
const data={id:'10'
}
xhr.send(JSON.stringfy(date));

这个是没有用的,虽然我请求头的content-type是这个,但是我的请求体格式却是application/josn格式
这个需要专门的参数

const formData = new URLSearchParams();
formData.append('id', '10');
const xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8080/s', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(formData.toString());

这样才是对的,
如果你需要上传图片等资源时,往往需要换成multipart/form-data
而参数体就需要换成下面的

  let formData = new FormData()formData.append('file', file.raw)// 传文件...xml.send(formData);

其他的我就不过多讲解了,与后端讨论后如果有不会的直接上网搜这块,搜素范围给你缩小了,


http://www.ppmy.cn/embedded/133971.html

相关文章

MiniWord

1.nuget 下载配置 2.引用 3. var value = new Dictionary<string, object>() { ["nianfen"] = nianfen, ["yuefen"] = yuefen, ["yuefenjian1"] = (int.Par…

企业数据安全举报投诉如何有效处理?

相关制度、流程图等获取请联系作者&#xff01;&#xff01; 在当今数字化和信息化的浪潮中&#xff0c;企业数据安全问题越来越受到重视&#xff0c;而对于数据安全的举报和投诉处理是保障企业数据安全、提升用户信任度的重要手段之一。一个完善的举报投诉处理机制能够有效应对…

Redis有什么不一样?

Redis作为一种高性能的内存数据库&#xff0c;以其卓越的性能、丰富的数据类型和强大的功能特性&#xff0c;成为了许多应用的首选数据存储方案。本文介绍Redis内存数据库&#xff0c;并与其他常见的key-value数据库&#xff08;如Memcached&#xff09;进行比较&#xff0c;及…

【产品经理】工业互联网企业上市之路

树根互联2022年6月2日提交招股书之后&#xff0c;因财务资料超过六个月有效期加三个月延长期&#xff0c;2022年9月30日上市审核中止&#xff1b;2022年12月26日树根互联更新了2022年半年度财务资料&#xff0c;又九个月过去了&#xff0c;其上市进程将面临再一次中止。 处于上…

CSP-S 2024 题解

前言&#xff1a;所给代码只过了民间数据&#xff0c;可能与实际成绩略有出入。 T1&#xff1a;决斗 为了让退出游戏的怪兽数量尽可能多&#xff0c;肯定是 r r r 大的打 r r r 小的&#xff0c;所以考虑用桶维护 r r r 的出现次数&#xff0c;对于一个新的 r r r 值&…

(蓝桥杯C/C++)—— 编程基础

文章目录 一、C基础格式 1.打印hello, world 2.基本数据类型 二、string 1.string简介 2.string的声明和初始化 3.string其他基本操作 (1)获取字符串长度 (2) 拼接字符串( 或 append) (3&#xff09;字符串查找&#xff08;find&#xff09; (4)字符串替换 (5)提取子字符串…

优选算法精品课--双指针算法(2)

双指针算法&#xff08;2&#xff09; 1、有效三角形的个数1.1 题目解析1.2 思路解析1.3 代码实现 2、和为s的两个数2.1 题目解析2.2 思路解析2.3 代码实现 3、三数之和3.1 题目解析3.2 思路解析3.3 代码实现 4、四数之和4.1 题目解析4.2 思路解析4.3 代码实现 5 总结 1、有效三…

Mybatis使用和原理

Mybatis使用和原理 1、ORM架构2、Spring整合MyBatis使用2.1 添加maven依赖2.2 配置数据源2.3 创建实体类2.4 创建 MyBatis Mapper2.4.1 使用MyBatis注解2.4.2 使用XML方式 2.5 Service 层 3、Spring整合Hibernate使用3.1 添加maven依赖3.2 配置数据源3.3 创建实体类3.4 创建 Re…