Web协议详解与抓包实战
我发现大部分技术人,多多少少都会遇到下面的困惑,比如: AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么? 缓存可以提升性能,但什么样的 HTTP 消息才会被浏览器或者代理服务器缓存呢? 抓包时收到 4xx 或者 5xx HTTP 响应码,这意味着服务器端发生了什么? 当我们维护 HTTPS 连接时,如果要优化TLS/SSL 的卸载性能,应该从哪里入手? 定位问题时,发现本地的 TCP 连接状态中出现了FIN_WAIT、CLOSE_WAIT 或者TIME_WAIT,都是什么原因引起的?应该如何解决? 想要提升 TCP 连接的传输速度,可服务器上相关的系统参数多达数十个,究竟该怎么调整? 时下逐渐普及的 IPv6 ,在报文上到底与 IPv4 协议有何差别? 你会发现,这些问题其实都和 Web 协议密切相关。我常常听到身边人抱怨“学不动了”,之所以会这样,大多是因为没有掌握好互联网体系中的底层知识。这些知识点相对稳定,而其他时刻变化的知识点是构建在这些知识点之上的。一旦掌握好,就可以长久使用,并且保持快速学习的能力。 Web 协议就是其中非常重要的一个模块。虽然它常常要兼容 internet 中非常古老或者有着突破性创新的浏览器或者服务器,从而也在时刻进化,但只要我们抓住它设计时背后的指导原则,系统地将 Web 协议转化为我们头脑中的结构体知识