一、TCP
1.HTTP长连接、短链接、三次握手四次挥手。
https://www.cnblogs.com/gotodsp/p/6366163.html
2.这个是网络方向的问题汇总,很全很全
https://www.cnblogs.com/yinbiao/p/10661945.html
3.三次握手、四次挥手相关的面试题
https://blog.csdn.net/qq_38950316/article/details/81087809
https://www.cnblogs.com/bj-mr-li/p/11106390.html
4.为什么是三次握手二不能是两次握手?
答:A发送一次确认的原因是为了防止已失效的连接请求报文段突然传送到了B,因而产生错误。
场景描述:已失效的连接请求报文段”产生场景:A发出连接请求,因为连接请求报文丢失而未收到确认。A再重传一次连接请求,后来收到确认,建立了连接。数据传输完毕,就释放连接。假设A发出的第一个连接请求报文段并没有丢失,而是在某些网络节点长时间滞留,后来某个时间又到达了B。本来这是一个早已失效的报文段,但B收到此报文段后一位是A又发出一次新的连接请求。于是就向A发出确认报文段,同意建立连接。这浪费了资源。
二、UDP
1.UDP和TCP进行比较
https://blog.csdn.net/xiaobangkuaipao/article/details/76793702
三、HTTP
1.Http和Https的区别?
https://blog.csdn.net/qq_38289815/article/details/80969419
1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。)
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
2.Https优缺点
优点:
1、使用Https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
2、Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
3、Https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
缺点:
1、Https协议握手阶段比较费时,会使页面的加载时间延长近。
2、Https连接缓存不如Http高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。
3、Https协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用
4、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
5、成本增加。部署 Https后,因为 Https协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
6、Https协议的加密范围也比较有限。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行
3.Http的get和post的区别
get和post是http所属的方法,而http又是基于TCP/IP实现的,所以get和post的底层都是TCP/IP协议,只不过http定义的规则和浏览器的限制导致他们在应用上存在一定的区别,最重要的区别就是get产生一个TCP数据包,而post产生两个TCP数据包,对于get的请求,浏览器会把浏览器的header和data一起发送出去,服务器响应200,对于post,浏览器先发送header,浏览器响应100,浏览器再发送data,服务器响应200,也就是说get只需要汽车跑一趟就把货送到了,而post需要跑两趟,第一趟先去和服务器打个招呼告诉它我等下要送货过来,开门迎接我,第二趟就是把货送过去,据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间查基本可以无视,而在网络环境差的情况下,两次包的TCP在验证数据包完整性上有很大的优势,所以不推荐使用get来优化性能,当然,并不是所有的浏览器都会在post中发两次tcp包,火狐浏览器就只发一次
下面我们看看get和post应用上的区别:
*get的参数通过URL传递,post放在request body中
*get在URL中的参数是有长度限制的,而post没有
*get只能进行URL编码,而post支持多种
*get只接受ASSIC字符,而post没有限制
*post比get安全,因为get的参数暴露在URL中
4.request的常用方法汇总
https://blog.csdn.net/qq_35029061/article/details/82915076
https://blog.csdn.net/selinda001/article/details/79338766
5.session的使用方法总结
https://blog.csdn.net/JavaLixy/article/details/68930285
https://blog.csdn.net/qq_39949109/article/details/82454060
https://blog.csdn.net/Dzy_water/article/details/79749246
6.cookie
下面这个文章详细讲述了session、cookie、url地址重写,写的非常好
https://www.cnblogs.com/humiao-0626/p/11347764.html