网络交互是一个非常复杂的过程,国际标准把它就分为了七层模型
应用层: 可以看的见的终端应用-->比如各种浏览器,有http,rtft等一些信息,上传下载的一些工具
表示层: 计算机识别的信息转变成人可以看到的信息(加密解密,压缩解压缩)
会话层: 传输端口,接收端口建立会话-->面向连接的,是为传输层服务的
传输层: 传输数据的协议与端口-->TCP/UDP
网络层: IP地址-->这层有报包的概念(路由器的概念,路由器会发送和接收数据报包)
数据链路层: 交换机传输
物理层: 具体物理设备-->人能看得到摸得到的东西,比如光纤,网线.
TCP/IP 参考模型(四层)
应用层: http https rest remt
传输层: SOCK通信(okhttp是直接用sock写的),每次都会有三次握手和四次挥手
网络层:
主机到网络层:
http1.0的理解
客服端-->发送请求到--->服务器 服务器接收到请求--->响应-->返回数据给客服端--->断开
http1.1就是请求完不会马上断开,有一个长连接keep-aive(优点:速度快三次握手和四次挥手只执行一次)
因为每次有三次握手和四次挥的,很耗性能,所以1.1加了一个长连接,缺点:就是服务器压力大点.
httpGet请求
客服端-->发起请求-->携带的一些信息(请求头请求行,请求头之请求的一些属性集合)--->服务器
请求行: GET / HTTP/1.1
请求属性集: HOST: www.baidu.com Connection: keep-alive等
http POST请求
客服端-->发起请求-->携带的一些信息(请求头请求行,请求头之请求的一些属性集合,请求体长度,请求体的类型)--->服务器
请求体长度 Content-length
请求体的类型 Content-type
请求体: 比如我们传的json数据过去