网络相关知识

计算机基础知识掌握TCP和HTTP相关知识即可。

这是一份详细 & 清晰的计算机网络基础 学习指南
计算机网络:这是一份全面 & 详细 的TCP协议攻略
计算机网络:这是一份全面& 详细 HTTP知识讲解

一、HTTP

  • HTTP请求报文结构、响应报文,状态码
  • Http和Https有什么不同,HTTPS的握手过程,浏览器如何验证CA证书
    http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
    http://www.cnblogs.com/ttltry-air/archive/2012/08/20/2647898.html
    https://juejin.im/post/59e4c02151882578d02f4aca
    https://juejin.im/post/5a2ff29c6fb9a045132aac5a
  • Http缓存机制
    https://juejin.im/post/5c93ba526fb9a070ca103898
  • cookie、session、token区别
    https://www.cnblogs.com/andy-zhou/p/5360107.html
  • Http1.0 ,Http1.1,Http2.0
    1、Http1.1相对Http1.0主要改进的地方:
    (1)在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。
    但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:Connection:keep-alive
    (2)缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
    2、Http1.x存在的问题:
    (1)线头阻塞:TCP连接上只能发送一个请求,前面的请求未完成前,后续的请求都在排队等待。
    (2)头部冗余,采用文本格式
    HTTP/1.X版本是采用文本格式,首部未压缩,而且每一个请求都会带上cookie、user-agent等完全相同的首部。
    3、Http2.0改进的地方:
    (1)HTTP2建立一个TCP连接,一个连接上面可以有任意多个流(stream),消息分割成一个或多个帧在流里面传输。帧传输过去以后,再进行重组,形成一个完整的请求或响应。这使得所有的请求或响应都无法阻塞。
    (2)HTTP 1.x每一次通信(请求/响应)都会携带头部信息用于描述资源属性。HTTP 2.0在客户端和服务端之间维护一份字典(map)存储头部信息。
    第一次通信后,把头部信息存进字典中,之后每次传输只需要带上索引进行。
    https://www.cnblogs.com/wjlog/p/5827168.html
    https://blog.csdn.net/zhuyiquan/article/details/69257126?locationNum=4&fps=1
    https://juejin.im/post/5c0ce870f265da61171c8c66

二、TCP相关

  • TCP 和 UDP 的异同
    UDP将应用程序发送过来的数据包在收到的那一刻,立即按照原样发送到上的一种机制,不保证数据的传输结果。
    TCP是面向连接的可靠传输服务。数据发送前需要三次握手建立连接,数据发送时通过一系列的机制,如校验和、序列号、确认号、超时重传、滑动窗口、快速重传、拥塞避免、流量控制保证数据不损坏、不丢失、不重复、不乱序,最后数据传输完成后需要通过四次挥手断开连接。
  • TCP如何保证可靠传输
    TCP数据传输过程可能会出现数据损坏、丢失、重复、乱序的情况,通过校验和、序列号、确认号、超时重传、滑动窗口、快速重传、拥塞避免、流量控制保证可靠传输。
    (1)数据损坏
    数据接收方接受到数据时对TCP报文做相应的运算,得出结果并与校验和比对,相同则说明数据没被损坏。(类似于Hash算法校验数据是否被篡改)
    TCP检验和的过程
    (2)乱序
    序列号对每个数据进行编号,维持一个滑动窗口缓存乱序的数据,同时快速重传乱序数据的ACK,当发送方接收到三个重复的ACK时,就会重传该数据,比超时重传效率高。
    (3)丢失
    每次发送数据时都会启动一个定时器,时间设为一个RTT,即数据在客户端和服务端之间的往返时间,当时间到达时还没收到ACK,则重新发送这个数据。
    (4)重复
    每个数据均有序列号,重复时丢弃即可。
    https://blog.csdn.net/cmm0401/article/details/77878998
    为什么收到三个重复的ACK意味着发生拥塞?
  • TCP建立连接三次握手的过程及原因
  • TCP断开连接四次挥手的过程及原因
  • 滑动窗口、快速重传
  • 拥塞避免、流量控制
    https://blog.csdn.net/qzcsu/article/details/72861891
    TCP拥塞控制机制

其他:

1一次网络请求的过程是怎样的?
2 DNS解析
3、socket编程
https://www.cnblogs.com/zhujiabin/p/5675716.html
https://blog.csdn.net/carson_ho/article/details/53366856

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。