iOS开发进阶-DNS解析&Cookie&Session

iOS开发进阶-DNS解析&Cookie&Session_第1张图片

课程: 新浪微博资深大牛全方位剖析 iOS 高级面试

DNS解析

什么是DNS解析?

域名到IP地址的映射,DNS解析请求采用UDP数据报且明文的。解析过程,客户端向DNS服务发送域名请求,DNS服务根据域名返回对应的IP地址,客户端根据IP地址请求Server端服务器。

DNS查询方式?

递归查询、迭代查询

DNS解析常见问题?

DNS劫持问题:因为DNS解析使用UDP数据报且是明文的。客户端发送域名请求时,容易被钓鱼DNS劫持返回错误的IP地址。

DNS劫持与HTTP有什么关系?

没有关系,DNS劫持是在HTTP建立连接之前。
DNS解析通过UDP数据报,访问53端口。

DNS 劫持解决方案

HTTPDNS、长连接。

Session / Cookie

Session和Cookie是对HTTP协议无状态特点的补偿。在之前学习HTTP协议特点时,提到过Session和Cookie的作用。

Cookie

Cookie主要用来记录用户状态,区分用户;状态保存在客户端。客户端向服务器发送请求,服务生成Cookie同响应数据一同返回给客户端,客户端保存Cookie。

客户端发送的Cookie是在HTTP请求报文的Cookie首部字段中。
服务端设置HTTP响应报文的Set-Cookie首部字段。

修改Cookie?

新Cookie覆盖旧Cookie。
覆盖时新Cookie字段要与原Cookie一致。
设置Cookie的expires=过去的时间点,或者maxAge=0,可以删除Cookie。

Session

Session主要用来记录用户状态,区分用户;状态保存在服务器端。它是通过服务器来保持状态的。当有客户端访问服务器时,服务器根据需求设置Session,将会话信息保存在服务器上,并返回一个SessionID给客户端,客户端保存到内存中,称之为无过期时间的Cookie。客户端关闭后Cookie被清除,他并没有存在于用户的Cookie临时文件中。

小结

HTTP中GET和POST方式有什么区别?
HTTPS连接建立流程是怎样的?
TCP和UDP有什么区别?
请简述TCP的慢启动过程?
客户端怎样避免DNS劫持?

网络章节的知识点梳理结束。

参考

深入理解Http请求、DNS劫持与解析。

你可能感兴趣的:(iOS开发进阶-DNS解析&Cookie&Session)