http 一

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容