http知识点

1、简单跨域问题解决方式:本地向不同域请求的时候,浏览器会做一个Origin请求头的验证,如果没有设置,在不同域名下或者本地请求时浏览器会向服务端发送请求,服务端也会向客户端发送对应的值,但是浏览器考虑到安全策略,会进行一个关于头信息的报错,此时后端需要在response的返回头加入‘Access-Control-Allow-Origin‘:’指定域名‘。

2、复杂跨域的解决方式:

在简单跨域请求中:

1.请求方法是以下三种之一:HEAD、GET、POST

2.http的头信息不超出以下几种字段:Accept、Accept -Language、Content-Language、Last-Event-ID、Content-Type

Content-Type:只限于三个值application/x-www-form-urlencoded 、multipart/form-data 、text/plain

如果不超过以上的限制,后端只需要提供一个允许跨域的Origin就可以了。如果在请求方法超过了以上三种,需要添加‘Access-Control-Allow-Methods':'PUT'或者'Access-Control-Allow-Headers':'content-type'等,同样浏览器为了安全,不允许其他请求方法在前端进行跨域请求

3、cookie是服务器和用户端之间一个像身份证一样的东西,一旦后端在返回头中设置了cookie数据,同时也会存在浏览器的application/cookie中,当每次发送请求的时候都会在request的头中带上当前域名下的cookie信息

键值对方式设置:在返回头中设置‘Set-Cookie’:‘cookie内容’

设置过期时间:通常,不设置过期时间时,浏览器关闭则cookie失效,也可以通过max-age 或者expire进行一个cookie失效时间的设置

不可获取的cookie:如果在不设置httponly的情况下,可以通过document.cookie进行读取,在不同情况下,考虑安全性,可以通过httponly后端配置,使得document.cookie无法获取  

https下的Secure cookie:如果设置了Secure只有在https的服务下才会把字段写入application/cookie中,虽然在response有发送cookie这个字端,但是浏览器识别到不是https服务时,会进行忽略。

4、meta http-equiv=" Cache-Control" content="no-cache"设置的必要性: 

浏览器对html页会进行一个自动缓存,但是正常刷新情况下,如果用ngix做一个静态资源的情况下,都会进行一个304的重新向服务器进行一个资源是否改动的验证,如果没有改动则进行一个304的缓存利用。

当关闭浏览器进程的时候,缓存在内存中的资源会随着浏览器的关闭一起清除,当再次打开浏览器的时候会从磁盘上读取缓存,这时候如果没有设置 meta http-equiv=" Cache-Control" content="no-cache",当打开浏览器再次访问的时候,html页面初次浏览器会从磁盘读取,即from disk cache,那此时肯定用的还是原本旧的资源,所以在加入每次都从原服务器验证资源,在打开浏览器的时候就不会出现资源没有及时更新的问题

5、redirect重定向的坑  

重定向在response中会有一个location字段进行重定义,比如说返回值/list,需要我们重定向到/list的页面,但是在响应码中,可以返回302或者301

301适合永久重定向

301比较常用的场景是使用域名跳转。如,访问http://www.baidu.com会跳转到https://www.baidu.com发送请求后,就会返回301状态码,然后返回了一个location,提供新的地址,浏览器就会拿着这个新的地址去访问

302用来做临时跳转

302和301的区别是设置了302如果再次访问则是从服务端再次拉取资源,然后进行重定向。301则是如果有缓存文件,则直接读取缓存文件上相应头上的重定向位置,如果原服务器端重定向的位置有变化,则只能通过用户清除缓存进行重新拉取新资源进行再次重定向,所以301的使用需要严谨。

6、csp的理解(content Security Policy)内容安全策略

为了让网页更加安全、限制资源获取、资源获取越权,可以通过设置default-src设置全局需要获取资源的内容,也可以设置资源类型的范围

connect-src连接的资源

style-src样式请求的资源

script-src脚本的请求资源等

可以通过响应头的返回设置Content-Security-Policy进行设置

有些xss攻击是通过inline script的方式注入代码进行攻击,可以通过设置进行禁用。可以设置'Content-Security-Policy':'default-src http:https' 对inline script进行禁用  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值