HTTP那些事儿

1,为什么TCP链接需要三次握手,断开需要四次挥手?

  客户端------------>服务端 : 服务端确定了客户端的发送能力

  服务端------------>客户端:客户端确定了服务端的接受能力和发送能力

  客户端------------>服务端:服务端确定了客户端的接收能力

总结:只有通过这三次握手,客户端才能确定服务端的接收和发送消息能力正常,服务端也能确定客户端接收和发送能力正常,所以需要三次握手。

2,为什么TCP需要四次挥手?

 服务端-------------->客户端:给客户端一个断开连接的信息。

 客户端--------------->服务端:告诉服务端收到了这个消息。

这期间要做一些断开连接的准备工作。

 客户端---------------->服务端:告诉服务端可以断开了。

 服务端----------------->客户端:通知客户端,断开连接。

总结:断开连接可以是客户端发出也可以是服务端发出。通过这四个步骤,客户端和服务端都可以完成断开前的收尾处理工作。

3,关于Http的一些事儿

 Http是超文本传输协议,它是应用层协议。

HTTP/0.9 (1991年):只用Get命令,且服务器只返HTML格式字符串,服务器响应完毕就关闭TCP连接。

HTTP/1.0(1996年):可以发送任何格式的内容,包括:文字 图片 视频 二进制等。丰富了命令:GET POST  HEAD,请求和响                                        应的格式加入头消息。

HTTP/1.1(1997年):引入持久连接,,TCP默认不关闭,可以被多个请求复用。

SPDY(2012年):是对HTTP1.1的完善,谷歌提出,综合了HTTPS和HTTP两者的优点于一体的传输协议。(1,必须使用HTTPS    2,请求头head压缩   3,多路复用)

HTTP/2.0(2015年):(在SPDY的基础上进化,即可用HTTPS也可用HTTP)采用二进制而非文本,解析更高效,数据更紧凑,错误更少。服务端可以将消息主动推送给客户端

4,网络请求的优化

 1)用户不停的下拉进行刷新。

 优化方案:短时间内的情况可以使用缓存,而不需要再次发起网络请求,那么如何控制缓存?

  2)用线程池。那么线程池如何创建,核心线程数怎么确定?

 5,OkHttp证书的校验

猜你喜欢

转载自blog.csdn.net/u011433937/article/details/89001189
今日推荐