http通信协议

一. Node.js中writeHead和setHeader的区别

writeHead可以设置http返回状态码,多个http响应头;
但是setHeader只针对单一属性的设置。

当使用 response.setHeader() 设置响应头时,则与传给 response.writeHead() 的任何响应头合并,且 response.writeHead() 的优先,因此 response.setHeader() 一定要放在response.writeHead() 的前面。

content-type:互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
常见媒体类型:
  text/html : HTML格式
  text/plain :纯文本格式
  text/xml : XML格式
  image/gif :gif图片格式
  image/jpeg :jpg图片格式
  image/png:png图片格式
  application/xhtml+xml :XHTML格式
  application/xml : XML数据格式
  application/atom+xml :Atom XML聚合格式
  application/json : JSON数据格式
  application/pdf :pdf格式
  application/msword : Word文档格式
  application/octet-stream : 二进制流数据(如常见的文件下载)
  application/x-www-form-urlencoded : 中默认的encType,form表 单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

二. withCredentials

在这里插入图片描述
Access-Control-Allow-Credentials这个是服务端下发到客户端的 response 中头部字段,意义是允许客户端携带验证信息,例如 cookie 之类的。
withCredentials: true,意思是客户端想要携带验证信息头,如果服务端设置是 Access-Control-Allow-Credentials => false,表示不允许携带信息头,这样就冲突了,因此前后端要保持一致。

三. Set-Cookie

参考mdn链接

  • HttpOnly:请注意,没有HttpOnly属性的cookie,在浏览器中可以使用document.cookie上访问,如果设置了 HttpOnly 属性,document.cookie就读取不到。

  • domain:存储的域名,cookie是不跨域的,并且存储在主域名中子域名是可以访问到的,但是如果存在子域名中那么主域名是无法访问的。所以这里一般是存在主域名,避免子域名访问不到cookie。

  • path:在domain下的哪个资源地址中使用cookie,一般指定根路径。

  • maxAge:有效期(毫秒)

  • expires=<date>:设置cookie的有效期,如果cookie超过date所表示的日期时,cookie将失效。如果没有设置这个选项,那么cookie将在浏览器关闭时失效。 注意:date是格林威治时间(GMT).

  • secure:只有在https的情况下才能使用cookie

  • singed:设置cookie是否签名

  • size:cookie的大小

默认情况下,cookie 在用户关闭会话时即关闭浏览器时过期。要持久化cookie,我们可以通过expires或Max-Age属性
注意:Max-Age优先于expires。

expires (绝对时间)
max-age (相对时间)过期时间

注意:
服务器的Set-Cookie只能设置在同域下,但是在浏览器的一个域下Application里却看到了多个域的cookie,这是因为这个页面用到了其他域的内容。
在这里插入图片描述

例如上面的new.qq.com,理论上都是qq.com域名下的内容,但是看到有.ipinyou.com的域,这是因为new.qq.com这个页面用了其他域名下的内容,且其他的那个域名需要cookie信息,所以才会在Application中展示出来。

四. Referrer policy

HTTP Cookie header 中set-cookie格式
请求头及响应头
Node设置响应头的方式
跨域问题导致设置 cookie 不生效
跨域设置cookie
nodejs 跨域设置cookie
Chrome 80 Cookie跨域 Samesite Lax 的错误
Cookie 的 SameSite 属性
CORS 跨域 Cookie 的设置与获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. . . . .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值