软件测试--网络基础

目标

  1. OSI七层模型及数据传输过程
  2. 网络层协议重点协议–ARP,IP ,路由协议
  3. 传输层重点协议–TCP,UDP
  4. 应用层重点协议–HTTP
  5. 应用层重点协议–HTTPS
  6. 抓包工具Wireshark的使用

OSI 七层模型

在这里插入图片描述

TCP/IP四层模型&&OSI网络七层模型

数据链路层—物理层、数据链路层
网络层—网络层—IP
传输层–传输层–TCP、UDP
应用层–表示层、会话层、应用层—HTTP、HTTPS

各层工作的物理设备

  • 物理层
    1、网卡
    2、集线器
  • 网络层:路由器
  • 传输层:防火墙
  • 应用层:服务器

网络协议–ARP,IP,路由协议

ARP协议

  • 地址解析协议(Address Resolution Protocol),实现通过对方的IP地址(域名)寻找对方的MAC地址

在这里插入图片描述

IP协议

  • IP(Internet protocol),分配给用户上网使用网际协议的设备的数字标签,分为两大类:IPV4和IPV6

IPV4:32位;IPV6:弥补IPV4地址池不够–数量很有限。128位
IP地址(192.168.0.1)=网络号(网络号标识的是一个子网 )+主机号(主机号标识的是子网中的某台主机)

  • 子网掩码

用来标识子网,必须跟IP地址一起存在(255.255.255.0)
255.255.255.0(二进制表示,连续的1表示网络地址,即3个255,连续的0表示主机地址,只有网络地址相同的主机在同一个子网,才能直接通信)

例:192.168.1.87 255.255.255.0与192.168.2.77 255.255.255.0能直接通信吗?
答:根据子网掩码 255.255.255.0 前三位为网络地址 后一位为主机地址,所以192.168.1与192.168.2 不一样,即他们的网络地址不一样,不在一个子网,所以不能直接通信

路由协议

路由协议(Routing protocol)指定数据包传送方式的网上协议。

传输层协议–TCP,UDP

TCP协议

  • TCP(Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制

  • TCP协议头部组成结构:

1.序号(sequence number):编号,TCP数据过大,容易分段–后按顺序重组 seq=1;
2.确认号(acknowledge number):服务器能够回应?存在于确认消息里—依据序号,ack(确认号)=1+1=2—seq+1:表示我服务端期望收到你的下一个包的序号。
3.状态控制码(标志位):①.ACK(acknowledge):确认位(被标记表示这个消息是一个确认消息);②.RST(reset):重置(被标记表示这个消息释放连接)–TCP连接出现错误,主机服务器崩溃,断开连接,请重新建立连接;③SYN(synchronous):同步(表示这个消息是发起连接的消息或者确认接受连接消息);④.FIN(final):终止(表示发送报文结束,释放这个连接–后TCP四次挥手)
4.原端口号和目的端口号

  • TCP三次握手
    在这里插入图片描述

  • TCP四次挥手
    在这里插入图片描述

UDP协议

  • UDP(User Datagram Protocol)用户数据报协议

跟TCP的区别:没有序号、确认号、标志位—怎么建立连接?----UDP协议不会建立连接(无连接的传输协议)— 不可靠的协议,丢包,出错(被允许的)—缺点
优点:速度很快,资源消耗特别小

什么场景可以用?
不需要可靠机制,只要求速度----流媒体、多媒体游戏、IP电话

基于UDP协议的:DNS(域名解析协议)、SNMP(简单网络管理协议)、DHCP(动态主机配置协议/动态获取IP)、RP(动态路由协议)
基于TCP协议的:HTTP、HTTPS、FTP(文件传输协议)

TCP vs UDP

特征点TCPUDP
是否连接面向连接面向非连接
传输可靠性可靠会丢包,不可靠
应用场景传输数据量大传输量小
速度
  • 总结:

1.TCP是面向连接的,所以TCP有三次握手和四次挥手的过程;UDP无连接协议
2.TCP因为有可靠的连接机制,是个可靠协议;UDP没有和连接和确认机制,会丢包和出错,是个不可靠的协议
3.TCP协议:数据量大,防止丢包,正确重传,对数据的准确性很关心;UPD:最小
4.TCP速度很慢,传输效率低;UDP速度很快,传输效率很高

应用层–HTTP协议

  • HTTP(Hyper Text Transfer Protocol)超文本传输协议
    • HTTP协议是基于TCP协议,默认是80端口
    • 功能:用来规定客服端和服务端的数据传输格式
    • 特点:基于请求和响应模式的、无状态、无连接的应用协议

HTTP请求方法

GET:请求获取有URL所标识的信息–获取信息和资源(例:获取网页页面的资源)
POST:给服务器发送数据–发送提交数据(例:提交用户名密码)

HTTP请求头部

User-Agent:产生请求的客户端类型—Windows,浏览器版本(内核)
Accept:客户端可识别的内容类型列表
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
Connection:表示是否要持久连接
cookie:这个与服务器做交互的,存储保持会话的重要信息–login(用户名+密码)—无状态
content-type:传给服务器的内容的格式。请求体的内容类型

  • HTTP请求报文:四个部分组成:请求行、请求头部、空一行、请求体
    在这里插入图片描述

HTTP响应行—状态码

1xx—接收的请求正在被处理
2xx—请求正常处理完毕-200
3xx—重定向–302、304缓存
4xx—客户端的问题导致的错误、网址错误–404
5xx—服务端的问题—503

HTTP响应行—响应头部

server:HTTP服务器的软件信息
set-cookies:设置cookies,服务器返回的文本
context-type:响应的类型和字符集(text/html;charset=utf-8)
connection:一般是keep-alive,保持TCP连接不关闭,但是不会长久保持连接,服务器可设置
location:指明重定向的设置,新的URL地址

  • HTTP响应报文:四个部分组成:响应行、响应头部、空一行、响应体
    在这里插入图片描述

HTTP:无连接应用协议

  • 限制每次连接只处理一个请求
  • 服务器处理完请求,并收到客户的应答后,即断开连接

HTTP:无状态应用协议

  • 对事物处理没有记忆能力,服务器不知道客户端是什么状态;给服务端发送HTTP请求之后,服务器回应之后,不会有任何记录
  • 每个请求都是独立的。
    服务器处理后续请求–前面请求的信息–重传
    优点–释放l服务器压力
    缺点—重传–重复内容,增大数据量–资源浪费
  • cookies:将前面请求信息保存成一个临时文件–cookies值–存放在浏览器(例:淘宝购物车:不同商品信息写入cookies;登录==>充值:可以吧登录的账号信息保存到cookies值);关闭浏览器–被删除
  • session:永久的cookies值。sessionI D(会话编号)–保存到服务器上–传递给客户端,保存在内存里。问题:资源占有。session超时间,清楚session ID

应用层–HTTPS协议

HTTPS(Hypertext Transfer Protocol secure),超文本传输安全协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。它加密数据并确保其机密性,可保护用户与网站交互时免于窃取个人信息和计费数据。

HTTP+加密+身份认证+完整性保护=HTTPS

SSL协议版本:SSLv3、TLS1.0、TLS1.2
加密----秘钥;身份认证—证书(申请)===双向认证;
完整性保护:哈希算法–计算一个hash值,验证消息的完整性

HTTP协议 vs HTTPS协议

特征HTTPHTTPS
安全性明文传输,易受攻击;无法确认双方身份,也无法保证数据的完整性–安全性低使用SSL加密传输协议,信息是密文,可以认证双方的身份,防止信息被截取篡改–安全性高
TCP端口TCP80端口TCP443端口
灵活度协议简单,使用很灵活技术门槛较高,多数个人或私人网站难以支撑
速度协议简单,HTTP服务器的程序规模小,因而通信速度很快加重了服务器的负担,需要更多的资源来支撑,降低了用户的访问速度(TCP三次握手+HTTP请求响应+SSL握手==速度慢)
经济适用度没有额外的费用要求CA机构颁发的证书都是需要年费的,此外对接HTTP协议也需要额外的技术支持

面试题

1.在pc浏览器的地址栏输入一串URL,然后按enter键这个页面渲染出来,这个过程中都发生了什么事?

1.首先,在浏览器地址栏输入URL,先解析URL,检测URL地址是否合法
2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容并比较缓存是否过期
3.DNS解析URL对应的IP
4.根据IP建立TCP三次握手
5.HTTP发起请求
6.服务器处理请求,浏览器接收HTTP响应
7.渲染页面,构建DOM树
8.关闭TCP连接(四次挥手)

2.get和post请求区别?

1.在客户端,GET方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML header 内提交
2.get方式提交的数据最多只能有1024字节,而POST没有限制
3.安全性问题。正如在(1)中提到,使用 Get的时候,参数会显示在地址栏上,而 Post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

cookies机制和session机制的区别?

cookies数据保存在客户端,session数据保存到服务端
cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗
session较安全,但占用服务器资源

http协议有哪几种请求方式?

HTTP1.0定义了三种方法:GET, POST 和 HEAD方法
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

HTTP状态码

常见的HTTP状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值