网络相关



引文:
  • 多线程相关
  • OC 语言相关
  • 内存管理相关
  • UI视图相关
  • RunLoop相关


  1. HTTP协议

  2. HTTPS与网络安全

  3. TCP/UDP

  4. DNS解析

  5. Session/Cookie


HTTP : 超文本传输协议

请求/响应报文


image.png
image.png

HTTP的请求方式:

GET / POST / HEAD / PUT / DELETE / OPTIONS

GET/POST区别

一般角度

GET请求参数拼在url后面, POST参数放在body里面GET参数长度限制2048个字符,POST参数长度无限制GET请求不安全,POST`请求比较安全

语义角度

1.  GET 是用来获取资源的 (安全, 幂等的, 可缓存的)
2.  POST是处理资源 (非安全, 非幂等的, 不可缓存的)

安全 --> 不应该引起server端的任何状态变化, 常用方式 get / head / options
幂等性 --> 同一个请求多次访问的结果完全一致 常用方式 put / delete
可缓存 --> 请求是否可以缓存, 常用方式 post

连接建立流程

客户端(C)与服务端(S)的通信机制

三次握手

  1. C 向S发送SYN请求报文
  2. S 向C返回SYN,ACK确认响应
  3. C向S发送ACK确认报文 , 此时双方握手成立

四次挥手

  1. C向S发送FIN请求报文
  2. S向C发送ACK响应 (此时客户端与服务端断开连接)
  3. S向C发送FIN,ACK请求,
  4. C向S发送ACK请求 (此时服务端与客户端断开连接)

HTTP的特点

无连接

HTTP的持久连接
HTTP协议
Charles抓包原理 (中间人攻击)


image.png

无状态
Cookis/Session
HTTPS与网络安全
HTTPS和HTTP的区别
HTTPS = HTTP + SSL/TSL


image.png

HTTPS建立连接的时候使用非对称加密, 非对称加密是很耗时的.
后续通讯的时候使用对称加密

非对称加密: 公钥加密 私钥解密
对称加密: 秘钥加解密
TCP/UDP (传输层协议)

TCP: 传输控制协议

特点: 面向连接, 可靠传输(无差错,不丢失,不重复,按序到达), 面向字节流, 流量控制, 拥塞控制.

UDP: 用户数据报协议

DNS解析

域名到IP地址的映射,DNS解析请求采用UDP数据报,且明文.

查询方式: 递归查询,迭代查询


image.png

image.png

DNS解析常见的问题:

  1. DNS劫持问题

  2. DNS解析转发问题

DNS劫持与HTTP没有任何关系, DNS解析是发生在HTTP之前的,DNS解析是使用UDP数据报协议, 端口53.

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