测试基础知识-计算机网络基础知识

基本概念

定义:将地理位置不同的、具有独立功能的多个计算机及其外部设备,通过通信线路连接起来,在网络操作系统、管理软件及通信协议的管理和协调下,实现资源共享和信息传递

  • 计算机网络:几台计算机通信组成的网络
  • 互联网:能彼此通信的设备组成的网络
  • 因特网:把全球的互联网、主机连接起来进行通信的网络
    • 主机:任何可以连接到因特网的设备
  • 万维网(World Wide Web):通过统一资源定位符(URL)标识资源(文本、图片、视频等),用户通过浏览器发起请求,服务器通过HTTP协议响应并传输资源。
    • 超文本:可以包含文字、图片、音频、视频和超链接的文本
    • URL:统一资源定位符,标识和定位互联网的资源(超链接通过URL实现 网页跳转和资源访问)

网络分类

  • 局域网LAN:(Local Area Network) 小范围短距离通信的本地网络
  • 广域网WAN:(Wide Area Network) 大型、长距离通信的网络
  • 虚拟专用网:(VPN) 专用的安全传输的网络

实际使用相关

  • 宽带单位:每秒传输多少bit
  • 网速单位:每秒传输多少Byte(宽带速度/8=实际网速)
  • 无线通信技术:wifi、wlan、nfc、蓝牙

 

OSI 7层模型

image

 

发送路径(应用层-->链路层),接收路径(链路层-->应用层)

应用层:包含应用层、表示层、会话层

  • 应用层:应用程序之间通信的入口(应用程序、浏览器)
  • 表示层:对数据进行转换
  • 会话层:设置和维护两台计算机之间的通信连接

传输层:为两台主机的应用程序建立端到端的连接(增加TCP首部,包含源端口、目的端口信息)

网络层:将数据信息从源节点传输到目的节点(增加IP首部,包含源IP地址、目的IP地址)

  • 设备:路由器
  • 传输过程中IP地址不会变化

网络接口层:包含数据链路层、物理层

  • 链路层:将网络层的数据可靠地传输到目标主机网络层(增加以太网首部,包含源MAC地址、目标MAC地址)
    • 设备:交换机、网桥、默认网关(连接2个网络的设备)
    • 传输过程会经过不同的物理设备,MAC地址会发生变化
  • 物理层:进行比特流传输

 

TCP/IP 协议簇

定义:一系列协议,最重要的两个协议是TCP和IP协议

作用:让不同网络间设备进行通信

image

  • HTTP协议:超文本传输协议,定义客户端如何进行请求、服务器如何进行响应的协议(默认端口80)
    • 明文传输:窃听、篡改、冒充风险
    • HTTP协议基于TCP协议、TCP基于IP协议
    • 逻辑端口:协议中使用的端口,确定是哪个程序(固定分配的端口:0-1023、所有应用可申请的端口:1024-65535)
    • 物理端口:物理设备的端口,比如主机的USB端口
  • HTTPS协议:在HTTP上加SSL加密层来进行通信(默认端口443,服务器需要向认证机构CA购买SSL证书,SSL证书包含公钥和钥)
    • 客户端发送请求到服务器端,服务器端返回公钥
    • 客户端验证公钥,生成会话密钥,用公钥加密会话密钥给服务器端
    • 服务器端使用私钥解密得到会话密钥,用会话密钥加密内容进行通信

TCP协议:面向连接传输协议,先建立连接再通信(速度较慢、更安全,适用大部分场景)

UDP协议:面向无连接传输协议,直接发(速度较快、不可靠,适用视频通话等对质量要求不高的场景)

IP协议:实现网络之间的互联,让数据包能够从一台计算机准确地发送到另一台计算机

  • 简单和高效:只提供无连接与不可靠的交付
  • 复杂的可靠性保证(如确认、重传)交给上层的协议(如TCP)去处理
  • IP地址:在互联网中标识一个主机,IPV4是4字节、IPV6是16字节(数量更多)
    • 组成:网络地址+主机地址(网络地址:某个网络,主机地址:某个主机)
    • 局域网IP:用于局域网内部设备之间的通信(192.168.xx.xx、10.xx.xx.xx、172.17.xx)
    • 公网IP:用于全球互联网设备之间的通信
    • 本机IP:localhost(不受防火墙、网络限制)、127.0.0.1、局域网私人IP
  • 子网掩码:区分IP地址哪部分是网络地址、哪部分是主机地址;进而区分2个IP是否属于同一个子网(子网:小型网络,255.255.0.0-->简写为16、16个1)
    • 子网掩码中 1 的部分对应IP地址中的网络位,0 的部分对应主机位

image

OSPF协议(网络层):路由选择协议,确定数据包转发的路径

ARP协议:把目的主机的IP地址解析成目的MAC地址

  • MAC地址:物理地址:在互联网中用来确认网络设备位置的地址(全局唯一)
  • 网络设备:网卡、交换机(内部使用的设备)、路由器(连接不同网络的设备,IP地址-端口表)
  • 在绝大多数TCP/IP网络中,路由器就是默认网关
  • 访问过程:主机->交换机->路由器
    • 在1个局域网:通过arp获取目的ip地址的mac地址,使用交换机(MAC地址-端口表)转发给目标主机
    • 不在1个局域网:通过arp获取默认网关的mac地址,使用交换机(MAC地址-端口表)转发给默认网关

以太网协议:局域网中广泛使用的协议

 

HTTP基础

HTTP版本

HTTP 1.0:默认使用Connection:close(非持久连接)

  • 无连接:限制每次连接只处理一个请求
  • 无状态:对事务处理没有记忆功能,每个请求都是完全独立的

HTTP 1.1 :默认使用Connection:keep-alive(长连接)

HTTP 2.0:请求并行、更快更安全(互相之间有影响)

HTTP 3.0:请求并行、更快更安全(互相之间没影响)

 

Web身份认证

Cookie:存储在客户端的小段文本数据,每次请求都会自动带上(Cookie: user=john),服务器看到Cookie,就知道是john了

  • 缺点:不安全且大小有限,所以敏感信息(如用户ID、登录状态、购物车物品)不适合直接放在Cookie里

Session:在服务器端存储用户状态,每次请求都会自动带上(Cookie: session_id=abc123xyz),服务器拿到session_id去查找对应的用户数据,从而知道是谁

  • 数据存储在服务器端:客户端只保存一个Session ID,更安全。
  • 依赖Cookie(通常):session ID需要通过Cookie来传递。
  • 给服务器带来压力:每个活跃用户都会在服务器上占用一块存储空间(内存、数据库或缓存)。

Token:每次请求带上Token(通常是 Authorization: Bearer <token>),服务器收到Token,用同样的密钥验证其签名。如果签名有效,就信任Token里面包含的用户信息

  • 生成Token:服务器将用户信息、过期时间等数据,用一个密钥对其进行签名,组合成一个字符串(Token),发给客户端
  • 优点:服务器开销少、安全性较高、跨域和扩展能力好(天然支持分布式、前后端分离和API接口)

 

报文

请求报文

  • 请求行:GET / HTTP1.1(请求方法+请求资源路径+HTTP版本)
    • 请求方法:GET、POST、DELETE、PUT等
      • GET和POST没有本质上的区别
      • 习惯用GET(数据放URL中)获取资源、POST(数据放请求体中)提交资源
  • 请求头部:header(关于客户端及请求体的信息)
    • Accept:通知服务端可以返回的数据类型
    • Host:服务器的域名
    • Connection:配置请求处理完成后是否会关闭连接
    • User-Agent:声明客户端的操作系统、浏览器的类型及版本
    • Content-Type:请求体的数据类型
      • Content-Type: application/json; charset=utf-8(application:先使用文件开头指定的编码方式,其次使用content-type指定的编码方式)
      • Content-Type: text/xml; charset=utf-8(先使用content-type指定的编码方式,没有指定则使用ASCII)
    • Authorization:认证的凭证
    • Cookie:本地的Cookie信息
  • 空行
  • 请求体:body

响应报文

  • 响应行:HTTP/1.1 200 OK(HTTP版本+状态码+响应信息 )
    • 1xx (信息性):请求已被接收,继续处理。
    • 2xx (成功):请求已成功被服务器接收、理解并接受。
      • 200 OK:请求成功了,且资源已在响应中返回
    • 3xx (重定向):需要客户端采取进一步的操作才能完成请求。
      • 301 Moved Permanently:请求的资源已永久移动到新位置。未来所有请求都应使用新的 URL
      • 两次请求:服务器通知客户端再去请求其它地址
    • 4xx (客户端错误):请求含有词法错误或者无法被执行。
      • 400 Bad Request:客户端发送了错误的语法
      • 403 Forbidden:没有权限
      • 404 Not Found:找不到对应资源
    • 5xx (服务器错误):服务器在处理一个看起来有效的请求时发生错误
      • 500 Internal Server Error:服务器内部错误
      • 502 Bad Gateway:网关从上游服务器(如应用服务器)收到无效响应  
  • 响应头部:header(关于服务端及响应体的信息)
    • Server:服务器软件的名称和版本
    • Cache-Control:如何缓存
    • Expires:响应的过期时间
    • Set-Cookie:给客户端设置Cookie信息
  • 空行
  • 响应体:body

 

访问百度的过程

  1. 浏览器地址栏键入URL,按下回车
    1. URL:统一资源定位符,标识和定位互联网的资源
    2. 格式:protocol://host/path/filename?key1=value1&key2=value
    3. host:域名、ip:port
  2. 解析url:解析出协议、域名、端口、资源路径、参数
  3. DNS域名解析:通过DNS服务器,把域名解析成IP地址
  4. 建立TCP连接:根据IP地址和端口和服务器建立TCP连接
  5. 发送HTTP请求:给服务器发送一个请求报文
  6. 响应:服务器对请求进行处理并返回响应报文
  7. 解析渲染:浏览器解析并显示响应体
  8. 断开TCP连接:根据Connection属性值选择是否断开TCP 连接
  9. 有缓存:浏览器直接返回缓存资源
  10. HTTPS 协议:建立TCP连接之后,还需要进行SSL握手获取会话秘钥

 

三次握手

定义:两台主机需要通过三次会话建立连接,这个过程我们称为三次握手

  • 第一次握手:客户端向服务端请求建立连接
  • 第二次握手:服务端向客户端返回确认并请求建立连接
  • 第三次握手:客户端向服务端发送确认报文、三次握手完成以后,2个主机之间,就可以传输数据

 

四次挥手

  • 第一次挥手:客户端向服务端请求断开连接
  • 第二次挥手:服务端向客户端返回确认报文
  • 第三次挥手:服务端完成数据传输后,向客户端发送断开连接请求
  • 第四次挥手:客户端向服务端返回确认报文(四次挥手结束后、客户端进入TIME_WAIT状态,等待2个MSL的时长后才关闭)
    • 等待2个MSL(报文的最长生存时间)的时长:确保第四次挥手的确认消息到达服务端(服务端如果没收到会重新进行第三次挥手)
    • 服务端是直接进入CLOSED状态
posted @ 2025-10-30 11:53  Fēngwèi  阅读(18)  评论(0)    收藏  举报