web网络协议

一、 OSI 模型

OSI = Open System Interconnect = 开放式系统互联
分层:物理层,数据链路层,网络层,传输层,会话层,表示层、应用层

  1. 物理层
    二进制传输 为传输数据所需要的物理链路进行创建、维持、拆除
    常见设备   中继器 集线器
    数据单位   比特 Bit

  2. 数据链路层
    介质访问(接入) 为网络层提供服务,在不可靠的物理介质上提供可靠的传输物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
    常见设备   二层交换机 网桥
    数据单位   帧 Frame
    web网络协议_第1张图片

  3. 网络层
    寻址和最短路径 使数据路由经过大型网络
    常见设备 路由器
    数据的单位 包 Packet

  4. 传输层
    进程间通信 提供终端到终端的可靠连接
    数据的单位 数据段 Segment

  5. 会话层
    主机间通信 管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话

  6. 表示层
    数据表示 包括编码解码、加密解密、压缩解压缩

  7. 应用层
    处理网络应用

缩写 全称 用途
DNS 域名解析服务 域名解析
HTTP 超文本传输协议 网页浏览
SMTP 简单邮件传输协议 电子邮件发送
POP3 邮局协议版本3 电子邮件接收
FTP 文件传输协议 文件传输
SFTP 安全文件传输协议 文件传输

二、 TCP/IP 协议族

  1. TCP/IP 和 OSI
    TCP/IP 协议族对 OSI 模型进行了简化
    OSI 上三层合并为 TCP/IP 应用层    OSI 的物理层和数据链路层合并为 TCP/IP 网络接入层
    web网络协议_第2张图片
  2. IP 协议
    IP = Internet Protocol = 互联网络协议
    IP 是一种 网络层 的协议,用于将多个包交换网络连接起来的,在源地址和目的地址之间传送数据报。
  3. TCP 协议
    TCP = Transmission Control Protocol = 传输控制协议
    TCP 是一种基于连接的 传输层 协议,提供了端到端的可靠的通信服务

通信方式
单工     只能单方向通信。如广播。
半双工   以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。如对讲机。
全双工   数据同时在两个方向上传输。如电话。

建立TCP连接   三次握手
web网络协议_第3张图片

建立连接一定是客户端主动发起
1.客户端->服务器 同步标志位SYN有效,表示客户端希望和服务器建立连接,有发送序号seq=100
2.服务器->客户端 确认标志位ACK有效,确认号ack=101,表示服务器同意客户端发送序号是100的连接请求,同步标志位SYN有效,表示服务器希望和客户端建立连接,有发送序号seq=200
3.客户端->服务器 确认标志位ACK有效,确认号ack=201,表示客户端同意服务器发送序号是200的连接请求,客户端的发送序号seq自增,值为101

断开TCP连接   四次挥手
web网络协议_第4张图片

断开连接客户端和服务器都可以主动发起,以客户端主动发起为例
1.客户端->服务器 结束标志位FIN有效,表示客户端希望和服务器断开连接,有发送序号seq=300
2.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器同意客户端发送序号是300的断开连接请求,有发送序号seq=400
3.服务器->客户端 确认标志位ACK有效,确认号ack=301,表示服务器对客户端发送序号是300的断开连接请求的回应,结束标志位FIN有效,表示服务器希望和客户端断开连接,有发送序号seq>=400
4.客户端->服务器 确认标志位ACK有效,确认号ack>=401,表示客户端同意服务器发送序号是>=400的断开连接请求,客户端的发送序号seq自增,值为301

  1. UDP 协议
    UDP = User Datagram Protocol = 用户数据报协议
    UDP 是一种无连接的 传输层 协议,提供面向事务的简单不可靠信息传送服务
    优点
    数据传输过程中延迟小,数据传输效率高,速度快
    缺点
    不提供数据包分组和组装,不能对数据包进行排序;
    不保证数据传输的可靠性,可靠性由上层(应用层)保证

UDP 和 TCP 的对比

TCP UDP
名称 传输控制协议 用户数据报协议
连接 面向连接 无连接
传输模式 字节流 报文
传输可靠性 可靠 不可靠
资源占用 较多 较少
复杂度 较复杂 较简单
数据顺序 保证 不保证
传输效率
  1. HTTP 协议
    HTTP = HyperText Transfer Protocol = 超文本传输协议
    HTTP 是一种 应用层 的协议
    规定了浏览器和 Web 服务器之间互相通信的规则, 通过网络传送 Web 文档的数据传送协议

特点

  • HTTP 协议是一种请求-应答式的协议
  • 从建立连接到关闭连接的过程称为“一次连接”
  • 最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。

原理

  • 连接用完就释放
  • 需要不断向服务器发起连接请求来保持在线状态。
  • 若服务器长时间无法收到客户端的请求,则认为客户端“下线”
  • 若客户端长时间无法收到服务器的回复,则认为网络已经断开

两个版本差异
HTTP 协议是无连接的协议

  • HTTP 1.0 短连接(非持久连接)
    客户端的每次请求都要求建立一次单独的连接
    在处理完本次请求后,就自动释放连接
  • HTTP 1.1 长连接(持久连接)
    可以在一次连接中处理多个请求
    并且多个请求可以重叠进行, 不需要等待一个请求结束后再发送下一个请求

HTTP 请求
请求 Request ,由客户端发送给服务器端
请求的方法(方式 Method)
GET 请求 主要是数据的获取
POST 请求 主要是数据的提交

GET 请求和 POST 请 求 的 区 别 :(★)

  • GET使用URL或Cookie传参。而POST将数据放在BODY中。
  • GET的URL会有长度上的限制,则POST的数据则可以非常大。
  • POST比GET安全,因为数据在地址栏上不可见。
  • 一般GET请求用来获取数据,POST请求用来发送数据,数据提交。

HTTP 响应
响应 Response ,由服务器端返回给客户端

  • 正常响应状态码 1XX,2XX,3XX
    200 正常状态码
  • 异常响应状态码 4XX,5XX
    404 Not Found 找不到需要访问的资源

HTTPS请求特点

  • 为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
  • HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTPS和HTTP的主要区别:(★)

  • https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的。
    总结:HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

三、Wireshark

  1. Wireshark 的特点
    是非常流行的网络封包分析软件;
    可以截取各种网络封包,显示网络封包的详细信息,但不能修改数据包的内容或者发送数据包;
    能获取 HTTP、HTTPS,但是不能解密 HTTPS,所以无法读取 HTTPS 中的内容。
  2. 过滤数据包
过滤要求 过滤条件表达式
过滤 IP 地址 ip.addr==172.31.128.199
过滤源 IP 地址 ip.src==172.31.128.199
过滤 目的IP 地址 ip.dst==172.31.128.199
过滤端口 tcp.port==80
过滤源端口 tcp.srcport==80
过滤目的端口 tcp.dstport==80
过滤协议 http
过滤HTTP 请求方式GET http.request.method==“GET”
过滤HTTP 请求方式POST http.request.method==“POST”

四、 Cookie 和 Session

Web 网站如何进行会话跟踪

困难
HTTP 协议是无状态协议
HTTP 协议不保存客户端信息,无法区分每次请求的不同之处

解决方法
Cookie

  • 服务器暂存放在用户计算机上的一些资料,可以让服务器用来辨认用户的计算机。
  • Cookie 通过在客户端记录信息确定用户身份
  • 应用
    保存用户的身份信息
    用户在上一次浏览网站时的表单输入和操作步骤
    因为 Cookie 保存在客户端所以用户可以看见,所以也可以编辑伪造,不是很安全

Session 会话

  • Session 通过在服务端端记录信息确定用户身份
  • 当访问网站时,服务器会标示该访问者,给它一个 Session ID,当会话过期后就删除这个 SessionID
  • Session ID 以响应的方式传递给客户端,以 Cookie 的形式保存在客户端中, 客户端在后续的请求中将保存该 Session ID 值的 Cookie 回传给服务器,服务器就可以用来对客户端的身份进行验证
  • Session 保存在服务器,Session 过多的时候会消耗服务器资源,所以大型网站会有专门的Session 服务器

你可能感兴趣的:(软件测试,网络协议,前端,网络)