HTTP

HTTP请求报文:请求行(包括http协议版本,请求方法等),消息报头(连接情况,接收的数据类型,接收数据范围等),请求正文(post才有,存放请求的数据)

HTTP响应报文包括:状态行(http协议版本,状态代码),消息报头(连接情况,返回数据长度等),响应正文(响应的数据)



TCP是面向连接的协议,必须和对方经过三次握手建立可靠的连接,然后双方就可以正式发送数据。

UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送数据时只需要发送到网络上。在发送端;接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

1.基于连接与无连接;

2.对系统资源的要求(TCP较多,UDP少);

3.UDP程序结构较简单;

4.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。


HTTP:基于TCP连接的网络协议,短连接

Socket:对TCP/IP协议的封装,是一组调用接口,长连接



POST GET区别:

1.从请求的数据来说,post请求参数是放在request body里的,而GET请求参数放在URL里,请求的数据就相对比较限制。

2.在效率方面GET请求要快点

3.而在ios我们使用GET请求,只需要设置好缓存策略,系统的NSURLCache就会帮助我们对数据进行缓存(HTTP,HTTPS都可以)。


HTTPS

TLS是建立在SSL协议规范之上,两者差别极小,可以理解为SSL ,因此把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。

Https是Http的安全版本,是使用SSL / STL进行加密的Http协议。

Http是基于TCP协议的,在传输的每一个节点数据包都可能被篡改。而Https有自己独特的握手,建立连接,数据校验机制。一旦在数据传输过程中发生篡改,则校验失败,请求直接被抛弃。

HTTPS客户端与服务器交互过程:

1.服务器必须要有一套数字证书,证书其实就是一对公钥和私钥(相当于一把钥匙和一个锁头)

2、客户端第一次请求时,服务器会返回一个包含公钥的数字证书给客户端;

2、客户端在判断证书可信任后,产生一段随机数,这个随机数就作为通信的密钥,我们称之为对称密钥,用公钥加密这段随机数,然后发送到服务器

3、客户端服务器双方通过的对称密钥对传输的数据进行加密,保证了数据的私密性和完整性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容