美文网首页
iOS 网络相关知识学习

iOS 网络相关知识学习

作者: XieHenry | 来源:发表于2021-04-19 16:01 被阅读0次
    1.什么是HTTP?HTTP的请求方式都有哪些?

    HTTP其实就是 超文本传输协议。
    GET POST HEAD PUT DELETE OPTIONS

    2. HTTP协议中,POST和GET的区别是什么?

    GET是幂等的,并且是可缓存的,安全的。
    POST是不幂等的,不可缓存的。不安全的。

    GET:用来获取资源 POST:处理资源

    屏幕快照 2020-07-12 下午5.21.12.png
    安全性:不应该引起Server端的任何状态变化
    幂等性:同一个请求方法执行多次和执行一次的效果完全相同
    可缓存性:请求是否可以被缓存
    
    3.HTTP的特点?

    无连接:HTTP的持久连接
    无状态:Cookie/Session

    image.png
    4.Charles抓包原理是怎样的?

    利用了HTTP的中间人攻击漏洞来实现的。

    5.HTTPS连接建立流程是怎样的??

    客户端发送给服务端一个支持的加密算法列表。包括TLS的版本号以及随机数C。服务端给客户端一个证书和商定的加密算法。后续首先通过非对称加密进行对称加密的秘钥传输。之后HTTP之间的网络请求通过被非对称加密保护的对称秘钥进行网络访问。

    image.png

    延伸:HTTPS都使用了哪些加密手段?为什么?
    连接建立过程使用非对称加密,非对称加密比较耗时
    后续通信过程使用对称加密

    6. 怎么解决DNS劫持?

    httpDNS
    长连接

    7. TCP和UDP的区别?

    TCP提供的是面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
    简单的说,TCP注重数据安全,而UDP数据传输快点,但安全性一般。

    面向连接:数据传输开始之前,需要建立连接
    
    非面向连接就是当要传输数据的时候是直接把数据发过去,不用像TCP那样预先执行三次握手建立连接
    
    8.HTTPS和HTTP有怎样的区别?

    HTTPS = HTTP + SSL/TLS

    http和https的区别

    9.TCP的三次握手和四次挥手?

    HTTP的连接建立流程,可以从这三个方面回答。(三次握手 请求响应 四次挥手)


    image.png

    三次握手:

    1.客户端发起连接,发送一个SYN同步报文到server端
    2.server端收到报文请求后,server端返回给客户端一个同步ACK的SYN报文
    3.之后客户端再次回应一个ACK确认报文
    
    4.然后就可以进行客户端的http的请求报文给server端
    5.server端给客户端一个http响应报文
    

    四次挥手:

    6.客户端主动发起FIN终止报文连接断开
    7.server端收到后,会给客户端一个ACK确认报文
    8.(也许server端还在给客户端传输数据)在某一时刻,server端向客户端发送一个FIN,ACK终止报文断开连接
    9.然后客户端向server端发送一个ACK确认报文
    
    10.TCP为什么要三次握手?
    屏幕快照 2020-07-16 下午8.35.54.png

    如果客户端发送请求的报文超时了。客户端会使用超时重传策略。重新发送一个syn同步报文。server收到后,会回复给客户端一个确认同步报文,如果只有两次握手。此时tcp连接已经建立。 假设server给客户端的报文之后,又收到了超时的syn同步报文,对于server来说,可能就认为客户端又要建立一个tcp连接,相当于server来说。客户端发了2次tcp连接。此时客户端只想要建立一次tcp连接。通过三次握手,可以解决这个问题。当接收到超时的syn后,客户端没有给server端发送ack确认同步报文,无法进行第二次连接。 三次握手主要是为了解决超时的问题。

    相关文章

      网友评论

          本文标题:iOS 网络相关知识学习

          本文链接:https://www.haomeiwen.com/subject/omgilltx.html