http 一

作者: 昵称是乱起的 | 来源:发表于2019-02-06 22:39 被阅读36次
    get与post区别从语义的角度来说
    • get是获取资源

    安全的:不应该引起服务器任何状态的变化
    幂等的:同一个请求方法执行多次和执行一次的效果完全相同
    可缓存的 :请求可以被缓存

    • post是处理资源

    非安全 非幂等 非可缓存的

    get请求参数拼接在URL后面 post放在请求体里面
    get的参数长度限制2048个字符,post没有限制
    get请求不安全,post请求比较安全

    http的特点
    • 无连接:每进行一次http通信就要断开一次,频繁的请求会增加通信量的开销,为了解决这个问题有了持久链接,相关头部字段Connection:keep-alive 、time:20、max:10,只要任意一端没有明确提出断开链接,则保持TCP的连接状态,好处是减少了TCP重复建立和断开链接所造成的额外开销


      image.png

      判断一个请求是否结束:1.看接收到的数据大小跟响应报文的头部字段里面的Content-length的大小是否一样 2.http报文段的末尾会有一个空的chunked(简单说就是最后一个报文块是0(CR+LF))

    • 无状态: 保留无状态协议这个特征又要解决每次都要验证的问题,引入了Cookie/Session,Cookie会根据服务器返回的响应报文中一个Set-Cookie的首部字段通知客户端保存Cookie,客户端下次再往服务器发送请求时,会自动在请求报文中加入Cookie值发送出去


      image.png
      image.png

      可以通过新Cookie覆盖旧Cookie来修改Cookie,但是要满足name、path、domain与原Cookie一致,删除Cookie跟修改一样,也是新覆盖旧的,并且满足覆盖规则,然后设置Cookie的expires=过去的一个时间点或者MaxAge=0。为了保证Cookie的安全,1.对Cookie进行加密处理2.只在https上携带Cookie 3.设置Cookie为httpOnly,防止跨站脚本攻击。
      还要注意Cookie与Session区别,Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份

    Charles抓包原理

    HTTPS抓包的原理,就是Charles作为“中间人代理”,拿到了 服务器证书公钥 和 HTTPS连接的对称密钥,前提是客户端选择信任并安装Charles的CA证书,否则客户端就会“报警”并中止连接。

    image.png
    https与http区别
    image.png
    https建立通信的流程
    image.png

    相关文章

      网友评论

          本文标题:http 一

          本文链接:https://www.haomeiwen.com/subject/vkdvsqtx.html