网络

http/https

  • http的6种请求方式
    get
    post
    head
    put
    delete
    options

get:获取资源:幂等、可缓存、安全的。请求参数以?分割拼接到URL后面
post:处理资源:非不幂的、不可缓存、不安全的。请求参数在body里面
(安全指的是不引起server端的任何状态变化,幂等指同一个请求方法执行多次和执行一次的下过完全相同,缓存指大部分代理服务器可缓存)

  • 状态码
    1xx:
    2xx:200响应成功
    3xx:301、302网络重定向
    4xx:403、404客户端发起的请求可能有问题
    5xx:502、501server异常

  • 连接建立流程

image.png
  • http特点
    无连接:可以通过http的持久连接来补偿。持久连接可以提高网络请求效率
    无状态:同一个用户多次请求服务器并不能识别,通过cookie/session来识别同一个用户

cookie主要用来记录用户状态,区分用户;状态保存在客户端。
客户端发送的cookie在http请求报文的cookie首部字段中。
服务端设置http响应报文的set-Cookie首部字段
怎样修改cookie?->新cookie覆盖旧cookie。覆盖规则name、path、domain等需要与原cookie一致
怎样删除cookie?->覆盖,设置expirse=过去的一个时间点,或maxAge=0
怎样保证cookie安全?->加密cookie、只在https上携带、设置cookie为httpOnly,防止跨站脚本攻击

session 也是用来记录用户状态,区分用户;状态保存在服务端。
session和cookie关系?session需要依赖于cookie机制


image.png
  • 持久连接头部字段
    connection:keep-alive //客户端期许持久连接
    time:20//持久连接有效持续时间
    max:最大发生多少个连接相应对

  • 怎样判断一个请求是否结束
    Content-length:1024 //通过响应报文头部字段大小来判断到是否结束
    chunked //post请求多次响应,最后会有一个空的chunked来判断是否结束

  • Charles抓包原理,利用了中间人攻击漏洞来实现。
    client<------中间人------->server

  • https和http的区别
    https=http+SSL/TLS

image.png
image.png

会话秘钥=随机数random s + random c + 预主秘钥

  • https使用了哪些加密
    连接过程中使用非对称加密,保证安全,但是耗时。(公钥加密私钥解密/私钥加密公钥解密)
    后续通信过程使用对称加密,秘钥在传输过程中可能遇到中间人攻击,不保证绝对安全。(加密解密的秘钥相同)
image.png

image.png

tcp/udp

  • UDP:传输层协议,用户数据报协议。
    特点:无连接、尽最大努力交付、面向报文(既不合并,也不拆分)。
    功能:复用、分用、差错检测
image.png

image.png
  • TCP: 传输层协议,传输控制协议。
    特点:
    1.面向连接:(3次握手4次挥手)
    2.可靠传输:(1.保证报文:无差错、不丢失、不重复、按序到达。2.停止等待协议:无差错情况-请求->响应、超时重传、确认丢失、确认重传)。
    3.面向字节流:TCP会将发送方的数据拆分或合并后发给接收方
    4.流量控制:基于滑动窗口协议来实现的。
    5.拥塞控制:(慢开始,拥塞避免。快回复、快重传)
image.png

image.png

DNS

  • DNS解析:域名到ip地址的映射,DNS解析请求采用udp数据报,且明文
  • 递归查询 “我去给你问一下” Clint<=>本地dns<=>跟域dns<=>顶级dns<=>权限dns
  • 迭代查询 “我告诉你谁可能知道”
image.png

image.png
  • 常见问题:
    1.dns劫持问题。两种解决方法 httpDNS/长连接
    2.dns解析转发问题
image.png

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