web 基础

web 原理及测试 X-mind 思维导图
点此下载
web 基础_第1张图片

1. 网络基础

  • 1.1 网络应用软件
  • 1.2 网络典型架构
    • 1.2.1 CS
    • 1.2.2 BS 架构
    • 1.2.3 CS 和 BS 区别
    • 1-2.4 P2P 架构
  • 1.3 网络结构
    • 1.3.1 两层架构
    • 1.3.2 三层架构
    • 1.3.3 三层架构-编程语言

2. web 概念

  • Internet
  • Intranet
  • URL
  • URI
  • 代码部署路径
  • DNS 域名服务器

3. web 协议

  • 3.1 协议定义
  • 3.2 OSI 参考模型
  • 3.3 传输层与应用层的区别
  • 3.4 数据格式
  • 3.5 IP协议
  • 3.6 TCP协议
  • 3.7 UDP协议
  • 3.8 TCP与UDP的区别
  • 3.9 HTTP(s) 协议
    • 3.9.1 定义
    • 3.9.2 请求方法
    • 3.9.3 HTTP 响应状态码

4. web 访问步骤

5. web 会话

  • 5.1 Cookie 饼干
  • 5.2 Session 会话
  • 5.3 Token 令牌

1. 网络基础

1.1 网络应用软件

(1) 定义

通过网络连接不同服务器、电脑、手机
实现软硬件资源共享,用户间信息交换

(2)特点

分布式,整个软件功能是由网络中的不同电脑以及其中的软件联合实现的
web / 客户端-服务器交互实现功能

1.2 网络典型架构

1.2.1 CS 架构

1、定义
	Client-Server:客户端-服务器,三层结构,或两层结构(现在少见)
	
2、优点
	(1)交互性强
	(2)响应速度快
	(3)存取数据安全
	(4)可实现复杂的业务流程
	
3、缺点
	(1)需安装占内存
	(2)需考虑不同操作系统、电脑配置、手机机型的版本兼容
	(3)开发和维护成本高

1.2.2 BS 架构

1、定义
	Browser-Server:浏览器-服务器,三层结构
	
2、优点
	(1)无需安装
	(2)维护、扩展业务方便
	(3)开发成本低
	
3、缺点
	(1)不能满足个性化
	(2)动态刷新页面时,响应速度慢
	(3)存取安全性较低

1.2.3 CS 和 BS 区别

1、负载:CS 负载大,BS 负载小
2、安全性:CS 安全性高,BS 安全性低
3、开发和维护成本:CS 成本高,BS 成本低

1.2.4 P2P 架构

1、定义
	Peer to Peer:对等式网络,点对点技术
	
2、特点
	无中心服务器,依靠用户群交互信息
	
3、应用
	应用于文件共享、网络视频和通话

1.3 网络结构

1.3.1 两层架构

1、客户端
	界面、程序逻辑、资源
	
2、服务器
	数据库系统存储的数据

1.3.2 三层架构

三层架构:浏览器 - Web 客户端 - 应用服务器 - 数据服务器

1、展现层
	浏览器、客户端:IE/Edge、Google、Firefox、Opera、NetScape、safari
	Web 服务器:IIS、Apache、Nginx
	
2、应用层
	编程语言 + 应用服务器,实现程序逻辑:java、python、PHP、.net、Tomcat、JBOSS、weblogic、websphere
	
3、数据层
	数据服务器,数据库存储数据:Mysql、Oracle、SQLServer

web 基础_第2张图片

1.3.3 三层架构-编程语言

1、浏览器:IE/Edge、Google、Firefox、Opera、NetScape、safari
2、web 服务器(接待):IIS、Apache、Nginx
3、应用服务器(逻辑):Tomcat、JBOSS、weblogic、websphere
4、数据服务器(数据):Mysql、Oracle、SQLServer

5.net 语言架构:IIS、.net、Mysql/Oracle/SQLServer
6、java 语言架构:Apache/Nginx、Tomcat/JBOSS/weblogic/websphere + java、Mysql/Oracle/SQLServer
7、PHP 语言架构:Apache/Nginx、PHP、Mysql/Oracle/SQLServer

2. web 概念

1、Internet
	International net:国际互联网
	WWW:World Wide Web,万维网,页面信息服务
	SMTP:简单邮件传输协议
	FTP:文件传输协议
	
2、Intranet
	Intranational net:局域网
	
3、URL:统一资源定位符
	(1)URL 解析:协议类型:// 主机名:端口号 /(路径 /)页面文件 ? URL 参数
	(2)协议类型:HTTP、HTTPS 协议
	(3)主机名:域名、IP 地址
	(4)默认端口:80(HTTP) 、443(HTTPS)
	
4、URL 参数
	单个参数:? 参数名=值
	多个参数:? 参数名=& 参数名=& ...
	
5、URI:统一资源标识符

6、代码部署路径
	windows-xampp-apache:\xampp\htdocs
	linux-apche:/var/www/html
	linux-apache-tomcat:/tomcat/webapps

7、DNS 域名服务器:将域名与相对应的 IP 地址进行转换

在这里插入图片描述


3. web 协议

3.1 协议定义

1、计算机之间交换数据时必须遵守的规则
2、传输层和应用层,用于定义计算机之间数据传输方式和数据格式

3.2 OSI 参考模型

web 基础_第3张图片

OSI 参考模型
Open System Interconnect:开放式系统互联,网络协议模型
ISO:国际化标准组织
IOS:苹果操作系统

1、物理层:二进制传输
	单位:比特流(Bit)
	线缆:双绞线、电缆、光纤、无线电波
	设备:中继器、集线器、调制解调器
	
2、链路层:数据分帧,介质访问,物理寻址
	单位:帧(Frame),1 Frame = 1500 Byte = 1500 * 8 bit = 1500 * 8 * 2 二进制
	设备:网卡、交换机、网桥
	查看 MAC 地址:cmd - ipconfig /all
	
3、网络层:路由选择(最短),IP 寻址
	单位:数据包(Package)
	协议:IP 协议、ICMP、ARP、RARP
	设备:网关、路由器
	查看 IP 地址:cmd - ipconfig
 	测试本机的 TCP/IP 协议是否正常工作:ping 127.0.0.1
 
4、传输层:进程间的连接
	单位:数据段(Segment)
	协议:TCP 协议、UDP 协议
	
5、会话层:主机间通信,访问验证,会话管理

6、表示层:数据表示,加解密,编解码,解压缩

7、应用层:访问网络服务的接口
	协议:Telnet(远程登录协议)、HTTP(s) 、FTP(文件传输协议)、
		  SMTP(简单邮件传输协议)、DNS(域名系统)、POP3

3.3 传输层与应用层的区别

1、传输层的 TCP 和 UDP 协议决定数据传输方式
2、应用层 HTTP(s) 协议定义数据格式
3、HTTP(s) 协议是基于 TCP 的短连接

3.4 数据格式

1、数据格式:在客户端和服务器之间传递的数据消息体格式
2、数据格式的主要类型:XML、JSON
	- XML:Extensible Markup Language,可扩展标记语言
	- JSON:JavaScript Object Notation,轻量级数据交换格式
			JSON 在线工具:http://www.bejson.com

3.5 IP协议

IP 协议:Internet Protocol,国际互联网协议,因特网互联协议
TCP 和 UDP 都以 IP 数据包格式传输
特点:无连接,不可靠,网络层协议

3.6 TCP协议

web 基础_第4张图片

web 基础_第5张图片

1、TCP 协议:Transmission Control Protocol,传输控制协议

2、短连接
	只完成一个事务即断开连接,如 HTTP 页面访问
	
3、长连接
	(1)可完成多个事务,需要心跳机制来维持连接状态
	(2)数据库属于长连接,会自动连接
	(3)集群环境的主机间属于长连接
	(4)心跳包:维持连接不被断开,相互检测对方是否健康
		 解决集群服务器环境的问题:负载均衡、故障转移

4、三次握手
	(1)客户端向服务器发送请求,申请建立连接
	(2)服务器收到连接申请,向客户端发送信息,确认客户端是否能收到服务器的响应信息
	(3)客户端收到服务器的响应信息,向服务器发送确认信息,建立连接

5、四次挥手
	(1)客户端向服务器发送请求,申请释放连接
	(2)服务器收到断开申请,向客户端发送响应信息。客户端收到服务器的响应信息,此时不能向服务器发送信息报文,只能接收
	(3)服务器没有可传信息时,允许断开,向客户端发送响应信息
	(4)客户端收到服务器的响应信息,向服务器发送确认断开信息,等待两个时间周期,连接关闭。服务器收到客户端发来的确认断开信息后,进入关闭状态

5、三次握手(建立连接)- 发送(心跳)请求 - 接收(心跳)请求 - 四次挥手(释放连接)

特点:面向连接,三次握手,四次挥手
	 有序可靠,传输速度慢
	 传输层协议

3.7 UDP协议

1、UDP 协议:User Datagram Protocol,用户数据报协议
2、类型
	(1)单播,一对一
	(2)多播,一对多
	(3)广播,一对所有,局域网
3、应用:直播,在线视频,QQ、微信
4、特点:非面向连接,无序不可靠,会丢包,传输速度快

3.8 TCP与UDP的区别

1、TCP:面向连接,有序可靠,传输速度慢
2、UDP:非面向连接,无序不可靠,会丢包,传输速度快

3.9 HTTP(s) 协议

3.9.1 定义

1、HTTP 协议:Hyper Text Transfer Protocol,超文本传输协议
   
2、HTTPS 协议:Hyper Text Transfer Protocol over Secure Socket Layer
	基于安全套接层(SSL)的 HTTP 协议
	HTTP + SSL/TSL (TSL:传输层安全协议,为 SSL 升级版,标准化版)
	
3、特点:无连接、无状态
	无连接:每次连接只处理一个请求即断开
	无状态:对事务处理没有记忆能力

4、HTML:HyperText Markup Language,超文本标记语言

3.9.2 请求方法

GET 和 POST 的区别
1、get 向服务器请求数据,post 向服务器传递数据
2、get 参数放在 URL 后面,post 在消息体中传参数
3、get 没有请求消息体,post 将传递参数作为请求体
4、get 数据在浏览器缓存,post 不会被缓存

POST、PUT 和 PATCH 的区别
1、POST 可用于新增
2、PUT 用于更新全部数据,如更新表单中的所有字段
3、PATCH 用于更新局部数据,如更新表单中的某个字段
请求方法 描述
get 请求数据
post 传递数据
head 请求报头
put 更新全部数据
patch 更新局部数据
delete 删除数据
options 查看服务器性能
trace 用于测试诊断,回显服务器收到的请求
connect 代理服务器

3.9.3 HTTP 响应状态码

1、1XX 临时响应:100101
	100:收到部分请求,客户端应继续请求
	101:服务端根据客户端的请求切换协议
	
2、2XX 客户端请求成功:200201202
	200:请求成功,一般用于 get 和 post
	201:成功请求并创建新资源
	202:已接受请求但未处理
	
3、3XX 资源重定向:300301302304305
	300:请求资源多个地址,返回资源特征和地址列表
	301:请求资源永久移动到新URL,返回新URL
	302:请求资源临时移动
	304:客户端已缓存访问资源,所以不返回任何资源
	305:请求资源需通过代理访问
	
4、4XX 客户端请求错误:400401403404
	400:客户端语法错误
	401:无授权,请求要求用户身份认证,如未登录
	403:禁止访问,服务器理解请求但拒绝执行,如普通用户没有访问某些页面的权限
	404:服务器找不到资源,资源可能失效(被删除、移动或修改)
	
5、5XX 服务器错误:500502503
	500:服务器内部错误
	502:错误网关,代理服务器从远端服务器收到无效请求,
		 如 tomcat 没有启动起来,进程端口冲突的问题
	503:服务不可用,系统维护或超载,如 tomcat 超时
1XX 临时响应
100 Continue,继续,收到部分请求,客户端应继续请求
101 Switching Protocols,切换协议,服务端根据客户端的请求切换协议
2XX 请求成功
200 OK,请求成功。一般用于 get 和 post
201 Created,已创建。成功请求并创建新资源
202 Accepted,已接受。已接受请求但未处理
203 Non-Authoritative Information,非授权信息。返回其他源的信息
204 No Content,无内容。请求成功但不返回内容,页面未更新可保持当前页面
205 Reset Conten,重置内容 。请求成功并重置页面内容,通过返回码重置表单
206 Partial Content,部分 get。请求成功并处理部分 get 请求
3XX 资源重定向
300 Multiple Choices,多选择。请求资源多个地址,返回资源特征和地址列表
301 Moved Permanently,永久移动。请求资源永久移动到新URL,返回新URL,之后所有请求都会自定向到新URL
302 Found,临时移动。请求资源临时移动,客户端应继续使用原URL
303 See Other,查看其他地址。GET 或 POST
304 Not Modified,未修改。客户端缓存访问资源,请求资源未修改,不返回任何资源
305 Use Proxy,使用代理。请求资源需通过代理访问
307 Temporary Redirect,临时重定向。GET 重定向
4XX 请求错误
400 Bad Request,语法错误。服务器无法理解
401 Unauthorized,未授权。请求要求用户身份认证
403 Forbidden,拒绝执行。服务端理解请求但拒绝执行
404 Not Found,未找到。服务器找不到请求资源
405 Method Not Allowed,方法禁用。客户端请求方法被禁止
406 Not Acceptable,不接受。服务器无法完成要求
407 Proxy Authentication Required,未授权。请求需要代理的身份认证。
408 Request Time-out,请求超时。客户端发送请求时间过长
409 Conflict,请求冲突。PUT
410 Gone,已删除。请求资源不存在
411 Length Required,需有效长度。请求需带 Content-Length 信息
412 Precondition Failed,未满足前提条件。请求前提条件错误
413 Request Entity Too Large,请求实体过大,无法处理,暂时无法处理会返回 Retry-After
414 Request-URL Too Large,请求URL过长,无法处理
415 Unsupported Media Type,不支持媒体类型。无法处理请求附带的媒体格式
416 Requested Range No Satisfiable,客户端请求范围无效
417 Expectation Failed,未满足期望值。服务器无法满足 Expect 请求头信息
418 请求超时,客户端发送请求时间过长
5XX 服务器错误
500 Internal Server Error,服务器内部错误
501 Not Implemented,服务器不支持请求方法
502 Bad Getaway,错误网关。代理服务器从远端服务器收到无效请求
503 Service Unavailable,服务不可用。系统维护或超载
504 Gateway Time-Out,网关超时。代理服务器未及时从远端服务器获取请求
505 HTTP Version Not Supported,HTTP协议不受支持。服务器不支持请求的HTTP协议版本

4. web 访问步骤

1、输入域名网址,或本地(localhost 或 127.0.0.1)、其他 IP
2、浏览器取出域名,通过 DNS 域名服务器,查询对应的 IP 地址
3、浏览器获取端口号,发起连接请求:IP + 端口
4、连接成功,浏览器向服务器发送页面请求:HTTP GET 报文
5、浏览器收到服务器的响应:HTTP 响应报文,根据 HTML、CSS、JS 的顺序加载页面
6、断开连接

5. web 会话

5.1 Cookie 饼干

1、全局变量,存在有效期
2、服务器发送给客户端,将 cookie 存放在客户端
3、cookie 中装有 sessionId(请求凭证)
4、cookie 类型
	(1)临时/会话 cookie
		不设置过期时间,生命周期为浏览器会话期间,关闭浏览器,cookie 失效
	(2)永久 cookie
		设置了过期时间,Cookie 一直保存在本地,直到超过设定的过期时间
5、缺点:cookie 不安全,会泄露个人隐私

5.2 Session 会话

1、全局变量,存在有效期
2、客户端的 cookie 中装有 sessionId(请求凭证)
3、session 在服务器的 session 表中存放
4、客户端发送请求凭证 sessionId -> 服务器会话列表匹配 session 
5、客户端发送 cookie 给服务器时,解析出 sessionId,然后在 session 表中查找是否存在该 session
4、缺点:session 会占用服务器资源

5.3 Token 令牌

1、无状态
2、服务器发送给客户端,将 token 存放在客户端
3、token 组成:uid(用户唯一标识)+ time(时间戳)+ sign(签名)加密
4、密钥由服务器保管
5、客户端每次发送请求都带上 token,服务器通过密钥解密 token
	判定 token 是否存在和被修改,返回相应的响应信息
6、有点:同时解决 cookie 不安全和 session 占用服务器资源的问题

你可能感兴趣的:(Alance,软件测试进阶之路,Vue菜鸟入门级攻略,web)