iOS 网络相关

HTTP的请求方式都有哪些?

post、get、head、put、delete、options

安全:不应该引起Server端的任何状态变化。
get、head、options

幂等:同一个方法执行多次和执行一次的效果完全相同。

可缓存:请求是否可以被缓存。

HTTP 中的GET和POST方式有什么区别?

GET:是幂等的,可缓存的、安全的
POST:是不幂等的,不可缓存的、不安全的

状态码:
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

HTTP连接建立流程
TCP三次握手:
客户端向服务端发送SYN同步报文
服务端收到同步的报文之后或者说连接建立的报文之后返回客户端ACK同步报文
客户端收到之后 回应服务端一个ACK确认报文
TCP链接建立之后,进行HTTP的请求和相应

四次挥手:
客户端发送终止报文FIN到服务端
服务端收到终止报文后回给客户端一个ACK确认报文,此时客户端到服务端的链接就已经断开了,但是服务端到客户端方向可能还会传递数据
服务端向客户端发送一个FIN终止报文、ACK确认报文,然后由客户端回给服务端一个确认报文ACK,完成四次挥手

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

Charles抓包原理是怎样的?
利用了HTTP的中间人攻击漏洞

HTTPS和HTTP有怎样的区别?

HTTPS = HTTP + SSL/ TLS (应用层之下,传输层之上的中间层)

HTTPS是安全的HTTP

HTTPS连接的建立流程?




TCP/UDP

都是传输层协议
TCP :传输控制协议
UDP :用户数据报协议

TCP为什么是三次握手?

解决同步报文超时重发的异常问题,不会建立多个连接

四次挥手




请简述TCP的慢开始过程




DNS解析存在哪些常见问题?

1、DNS劫持问题


截屏2021-03-11 下午4.39.19.png

2、DNS解析转发问题

DNS劫持与HTTP的关系是怎样的?


没有关系

DNS 解析发生在HTTP建立连接之前
DNS 解析请求使用UDP数据报,端口号53

怎么解决DNS劫持?

原有的DNS是使用DNS协议向DNS服务器的53端口进行请求
1、httpDNS:使用HTTP协议向DNS服务器的80端口进行请求
2、长连接
截屏2021-03-11 下午4.53.40.png
截屏2021-03-11 下午4.55.54.png
截屏2021-03-11 下午4.56.48.png
截屏2021-03-11 下午4.59.26.png

[图片上传中...(截屏2021-03-11 下午5.03.05.png-3cb6f9-1615453388970-0)]

截屏2021-03-11 下午5.01.51.png
截屏2021-03-11 下午5.03.48.png
截屏2021-03-11 下午5.05.24.png

你可能感兴趣的:(iOS 网络相关)