关于http的一切(updating...)

1.http和https

http:

  1. 超文本传输协议,默认端口80,无连接无状态
  2. 解决无连接(一次连接处理一个请求),connection:keep-alive
  3. 解决无状态,cookie(在客户端记录状态)和session(在服务器记录状态)
  4. http1.1,默认connection:keep-alive,通过content-length判断数据是否接受完全(防止并行连接)
  5. http2.0,文本传输格式采用二进制,连接共享(不同的request可以使用同一个连接传输,并行)

https

  1. 超文本加密传输协议 ,http+ssl/tls,默认端口443
  2. 客户端向服务器索要公钥,双方协商生成对话密匙,双方采用对话密匙进行加密通信

2.浏览器的同源机制

协议、域名、端口号都相同,只要有一个不相同,那么都是非同源。
在这里插入图片描述
同源策略限制的情况:

  1. Cookie,localStorage和indexDB无法读取
  2. DOM和js对象无法获取
  3. AJAX请求不能发送
  4. 注意,img,iframe,script等标签的src属性可以访问非同源网站的资源。

3.跨域问题

跨域问题解决的是请求非同源网站的资源

  1. CORS(Cross-Origin Resource Sharing),CORS允许浏览器向跨域的服务器发送XMLHttpRequest请求,浏览器端的CORS跨域会在请求时自动完成,但是服务器需要进行必要的处理,即在服务器端设置响应头setHeader(“Access-Control-Allow-Origin”, “*”);
  2. JSONP(JSON with Padding) 方式,动态添加 script标签来调用服务器提供的 js脚本,请求方式为get,返回的是一段可执行的js代码而非json数据的格式。
  3. WebSocket协议,不实行同源协议,因其请求头中具有Origin字段,服务器可根据它判断是否允许同性。
  4. Server Proxy(服务器代理),浏览器受同源策略限制,但服务器不受。因此可由服务器代理客户端跨域请求资源。在 node 环境中,可以在 package.json 文件设置 proxy 字段完进行服务器代理。

4.XSS和CSRF

xss (Cross Site Script)):跨站脚本攻击,指攻击者在返回的HTML中嵌入js脚本
解决方法: 在http响应头设置set-cookie:http-only(禁止js脚本访问cookie)

csrf (Cross-site request forgery):跨站请求伪造,攻击者劫持cookie伪造用户向服务器发送请求并违规操作。
解决方法:

  1. 验证码(验证用户身份)
  2. token验证(在http请求中添加随机生成的token,并在服务器验证。)

区别:csrf需

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值