Java初级程序员面试总结(四)--http/tcp篇

Java初级程序员面试总结(四)

引言:
我是一个菜鸟程序员,坐标HZ,如果有想让我写的博客,可以留言,我可以尽量满足你们,每期4个问题.
Q1: 你知道Http协议的执行流程吗?
Answer:
1.进行DNS解析,进行CDN加速,解析url,为host:port
2.进行3次TCP握手
3.客户端向服务端发送请求行,请求头,请求体
4.服务端向客户端发送响应行,响应头,响应体
5.浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
6.客户端解析视图资源
Q1: 你知道Https协议的执行流程吗?
Answer:
1.浏览器把协议版本号,支持的算法以及生成的随机数A发送给服务器
2.服务器接受客户端发的加密算法,根据自己的加密算法,决定使用哪种加密算法,然后把该算法和数字证书以及生成的随机数B发给客户端
3.客户端接到服务端发送过的证书后,得到证书的非对称加密公司D,生成随机数C,把C和D加密得到E发送给服务器.
4.服务器接到这个E后,用私钥解密得到C,服务器集齐A,B,C,利用ABC生成对话加密密钥,因为客户端得到A,B,C 这样双方都能进行加密解密.
Q1:你知道Https的缺点吗?
Answer: Https会降低用户访问速度,增加服务器资源消耗.Https申请加密协议,增加运营成本.百度对Https的优先展示效果不明显,谷歌明显.站点不涉及私密信息,无需Https.兼容性不够.Https安全程序有限.Https维护麻烦.
Q1:你知道TCP三次握手和四次挥手吗?
Answer: TCP3次握手,第一次客户端发送一个随机数SYN,并将自己置于send状态.第二次服务端将客户端的SYN+1变成ACK,并随机生成一个SYN.第三次,客户端收到并验证ACK,将SYN+1作为ACK发回服务端,并将自己置于通信状态.
4次挥手,第一次客户端发送一个FIN随机数,并将自己置于send状态.第二次服务端将FIN+1作为ACK.第三方服务器将FIN+1作为ACK,并发送一个随机数作为FIN.第四次客户端接收到FIN后+1作为ACK返回,置于原状态.


关于Https优缺点可以好好准备一下,我个人不太喜欢用Https虽然现在已经有不少免费的证书了,但是并不是100%安全,并且搜索引擎也没有很好的显示.

你可能感兴趣的:(Java,java,面试,http,https)