OSI网络七层协议
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
image.png
iOS中把上三层应用层
image.png
对于我们而言理解上也就主要是4个层,数据链路层,网络层,传输层,应用层
TCP/UDP协议
TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。
三次握手
- 首先客户端向服务器发起一个建立连接的同步请求(SYN)请求
- 服务器在收到这个请求后向客户端回复一个同步/确认(SYN/ACK)的应答
-
客户端在收到应答回应之后再向服务端发送一个确认(ACK),此时TCP连接成功
image.png
四次挥手
![](https://img.haomeiwen.com/i2547072/8b792008857d016e.png)
-
首先客户端发送一个FIN消息给服务端,客户端进入FIN_WAIT_1状态
-
接着服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占一个序号), 服务端进入CLOSE_WAIT状态。
-
服务端在回复完客户端的TCP断开请求后,不会马上进行TCP断开,服务器会先确保断开前,所有的传输的数据是否已经传输完毕,一旦确认数据传输完成,服务端发送一个FIN消息给客户端,服务端进入LAST_ACK状态。
-
最后客户端收到FIN消息后,进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,
服务端进入CLOSE转台,完成四次挥手。
UDP协议
UDP被称之为用户数据报协议位于传输层。提供非面向连接的网络服务,传送数据不需要和服务端建立连接,只需要知道数据需要发送到哪一个IP地址和监听端口即可,该服务传输的数据是不可靠的、可以由一点发送到到多点。这意味着它不保证数据报的到达只负责发送,也不保证所传送数据包的顺序是否正确。
HTTP协议
基本概念 -
客户端(Client):移动应用(iOS、android等应用)
-
服务器(Server):为客户端提供服务、提供数据、提供资源的机器
-
请求(Request):客户端向服务器索取数据的一种行为
-
响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端
HTTP协议的特点
HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
GET和POST对比和区别
GET和POST的主要区别表现在数据传递上
GET:在请求URL后面以?的形式拼接发给服务器的参数,多个参数之间用&隔开。
比如http://www.test.com/login?username=123&pwd=234&type=JSON由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST:发给服务器的参数全部放在请求体中,理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
HTTPS
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer):是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
![](https://img.haomeiwen.com/i2547072/30ba9b4a6e71c5f2.png)
HTTPS和HTTP的区别主要为以下四点:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
参考链接
网友评论