HTTP 请求响应+缓存+握手

 01: HTTP有哪些⽅法?

      GET      请求书

      POST     发送数据给服务器 

      HEAD     请求资源的头部信息,查看资源信息(大小)

      OPTIONS  获取服务器支持请求方法,用来检查服务器的性能,在正式请求前,先进行一次预检请求。服务端返回一些信息,浏览器拿到之后,看后台是否允许进行访问

      PUT      向指定资源位置上传其最新内容

      DELETE   请求服务器删除Request-URI所标识的资源

      TRACE    回显服务器收到的请求,主要用于测试或诊断

      02: GET和POST有什么区别?

      get: 数据传递通过url   历史记录可以查询   幂等       数据小   数据ASCII字符

      post:请求体           数据相对安全       非幂等     数据大    无限制

      put:                                     幂等

      幂等: 多次执行所产生的影响均与一次执行的影响相同

03:http的报⽂?

      请求报文:

              请求⾏      get方法  url地址  http1.1协议版本

              请求头部     key:value组成的键值对信息

              空⾏ 

              请求体     

              发送时:

              Accept  客户端或者代理能够处理的媒体类型  

              Accept-Encoding 优先可处理的编码格式

              Accept-Language 优先可处理的⾃然语⾔ 

              Accept-Charset  优先可以处理的字符集

              If-Match  ⽐较实体标记(ETage) 

              If-None-Match ⽐较实体标记(ETage)与  If-Match相反  

              If-Modified-Since ⽐较资源更新时间(Last-Modified)

              If-Unmodified-Since⽐较资源更新时间(Last-Modified),与  If-Modified-Since相反 

              If-Rnages 资源未更新时发送实体byte的范围请求 

              Authorization web的认证信息  

      响应报文:

              响应⾏     http1.1协议版本   200状态码   状态原因语

              响应头部 

              空⾏ 

              响应求体

              返回时:

                Allow 资源可⽀持http请求的⽅法  

                Content-Language  实体的资源语⾔

                Content-Encoding  实体的编码格式 

                Content-Length    实体的⼤⼩(字节) 

                Content-Type      实体媒体类型

     状态码:

      2xx:  成功

      3xx   重定向

            301  永久性重定向,表示资源已被分配了新的 URL 

            302  临时重定向

      4xx   客户端错误

            401  请求要求用户的身份认证

            403  客户端无权限

            404  资源不存在,服务器找不到该资源

      5xx   服务器错误

      keep-alive?

      http时无状态的链接,使用完毕后就断开了,来回连接消耗资源和时间,

      在请求头中加上Connection:  keep-alive,表示暂时不要关闭链接,继续下个请求,如果一段时间内不在请求,该链接自动断开

      http vs https?

      http 超文本传输协议,位于tcp/ip模型中的应用层,数据都是明文传输,安全性低

           采用对称加密,双方通过密钥进行加密解密,但是密钥有可能被拦截,造成数据不安全

      https: 非对称加密,

      06:HTTP的缓存的过程是怎样的

          。 客户端到服务端索要资源,

          。 服务端返回资源,并响应头中设置缓存资源策略

          。 客户端根据响应头开始缓存数据和响应头信息

          。 再次请求且命中资源的时,会根据缓存策略判断时获取本地数据还是服务端数据

      

      07:强缓存或者协商缓存?

          强缓存

          。 Expires        服务端返回一个绝对时间,再次请求时和本机时间比较判断缓存是否过期

          。 Cache-Control  服务端返回一个相对时间,再次请求会检查该资源是不是在有效时间内(和响应头中的Date对比计算)

          Cache-Control >  Expires

          协商缓存

          。 服务端返回 Last-Modified最新更时间

          。 客户端请求头  If-Modified-Since带过去更新时间

          。 服务端进行资源更新时间比对,判断是不是要返回新的数据

          ETag/If-None-Match 精准新高于Last-Modified

          服务端返回ETag(根据内容进行hash,生成一个信息摘要,只要资源发生变化就更改信息摘要)

          客户端请求头If-None-Match带过去信息摘要,然后到服务端比对判断是不是更新

    客户端请求资源

        判断缓存

          。 没过期使用本地缓存数据

          。 过期 Etag判断信息摘要  

前端安全

      01:xss 原理: 页面渲染时,包含可执行的脚本

          。反射型(url参数直接注入)       fcookie中设置 httpOnly,禁止读取cookie

          。存储型(存储到DB后读取时注入)  转码URLEncode操作

            当用户打开页面,恶意代码执行

          。DOM型XSS攻击                  尽量使用.textContxent、.setAttribute(),不是innerHTML outHTML             

          HTML节点内容注入  

          <div><script>alert(1);<script></div>  

          DOM属性注入

          <img src='/images/1.png' οnerrοr='alert(1);'>  

          javascript代码

          <script>alert(1);<script>

          

      02:csrf 原理:在第三方网站向本网站发起请求

        。用户登录了网站a,发起了身份认证

        。网站a确认了认证,返回了cookie(包含用户信息)

        。b站给用户一个地址,用户访问了b站,并在背后偷偷访问了a站, 此时将会把用户的cookie带过去,伪造了用户登录

        防御: 

        referer验证:禁止来自第三方的请求

        token:认证

        禁止第三方网站携带本网站的cookie信息,设置same-site属性Strict

        验证码:用户体验不好,使用token用户无感知

      

      03:iframe嵌套

          if (top.location != window.location)禁止嵌套

http三次握手 (建立链接)

        01: 客户端 => 服务端 发送一个syn码

        02: 服务端 => 客户端  服务端接收到syn码,一并返回 syn码 + ACK码给浏览器

        03: 浏览器接收ACK码,验证是否正确,发送数据,建立数据连接

       

       功能: 

       防止和客户端连接失败,服务端占用连接资源(检测双方都有数据链接能力)

        

     http四次挥手 (断开链接)

      01: 客户端 => 服务端  发送一个FIN码,告诉服务器,我数据传输完成,可以断开链接吗  (服务可能接受中)

      02: 服务端 => 客户端  服务端接收到FIN码,返回 FIN码 + ACK码给浏览器, 我可能数据没接受完毕,等一下

      03: 服务端 => 客户端  服务继续发送FIN码 + ACK码给浏览器,告诉浏览器数据,我数据接受完毕,你可以断开了

      04: 客户端 => 服务端  浏览器接收到FIN+ACK码,然后发送ACK码给服务器,告诉服务器你可也以断开了

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值