Android常用计算机网络知识总结。

2019-09-29  本文已影响0人  Princefei
  1. 无连接:每次处理完一个请求后就断开。
  2. 无状态:对事务处理没有记忆能力,它意识着如果后续处理需要前面的信息,则必须重传。
  1. HTPP/0.9
    最早的版本,该版本很简单,只有一个Get请求,并且规定服务器返回的格式必须是HTML的字符串。处理完请求后就断开连接。
  2. HTPP/1.0
    该版本增加了很多功能,任何格式的内容都可以发送,不止字符串,还能传输图像,视频,二进制文件。除此之外,增加了Post和Head请求方法。请求和响应的格式也变了,除了数据部分还要增加头部信息。
    1.0版本主要的缺点是:每个TCP连接只能发送一个请求,发送完数据就断开连接。如果还有后续的请求,必须重新建立连接。TCP的连接成本很高,要进行三次握手,并且开始时发送速率较慢,这就导致性能较差。为了解决这个问题,有些客户端在请求时,用了一个非标准的Connectcion字段。

Connection:keep-alive

这个字段就是表示让服务器不要关闭TCP连接。服务器同样回应这个字段。这样一个可以复用的TCP连接就建立了。直到客户端或服务器主动关闭连接。但是,这并不是标准的字段。

  1. HTPP/1.1
    目前最流行的版本。最大的变化就是引用了持久连接,即TCP连接默认不关闭,不用声明Connection:keep-alive。
    客户端和服务器发现对方一段时间内没有活动,就可以主动关闭连接。不过规范的做法是,客户端在最后一个请求时,发送Connection:close,表示要求服务器关闭TCP连接。

Connection:close

  1. HTPP/2
    新的二进制格式:HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮,不同于HTTP1.x的解析是基于文本
    多路复用:连接共享,即每一个request都是是用作连接共享机制的
    服务端推送:服务器主动向客户端推送消息

请求报文分为:请求行、请求头部、空行和请求数据。以下是一个请求报文示例:

POST /xxx/xxx.html HTTP/1.1
Host: www.xxx.com
Content-Length: 155
Connection:Keep-Alive
User=Agent: Mozilla/5.0
Accept-Language: cn

account=prince&password=6666
HTTP/1.1 200 OK
Date:Thu, 15 Jul 2019 09:26:55 GMT
Content-Type text/html
Content-Length: 1101

<html>
       <body>
                ....
       </body>
</html>

上一篇下一篇

猜你喜欢

热点阅读