web
一、什么是web
在百科的词条上如下解释什么是web:
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容百度
http :Hyper Text Transfer Protocol,超文本传输协议,所有的www文件都遵循这一原则,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。
我们习惯性的把电脑端根据架构方式不同,简单分为 B/S 架构和 C/S 架构 ,而访问web网页就是 B/S 架构,需要浏览器browser浏览器、server服务器、DB数据库,才能够访问到web网页。
web网页可分为静态网页和动态网页。静态网页一般一html和htm结尾,有如下特点:
- 和服务器没有数据交互,不会因为用户的改变而改变,安全,理论上没有攻击漏洞
- 每次修改更新网页都需要修改服务器上html文件
- 静态网页除了包含文本外还包括动画、声音、Flash文件、滚动字幕等效果
动态网页有一个标志性符号 ? 后面跟要传递的参数,有如下特点:
- 网页数据可以和服务器进行数据交互,会因用户的不同而发生改变
- 网站的更新在后台就可以完成,但是不安全,容易被攻击
- 动态网页是html语言与 java、vb 、vc 相融合,从而通过改变数据库和环境的改变而改变
二、常见web架构组合
web server 可以解析动态网页,现在网站基本是由静态与动态相结合的网页;解析http请求,并对相应的数据进行解析反馈给浏览器;还可以进行项目的管理,因为项目都会放在服务器的目录下。常见的关系型数据库有 MySQL 、Oracle 、SQLServer等
根据web server 与database之间的搭配根据网站语言的不同而不同,常见搭配如下:
- php 页面使用 Apache 服务器或 Tomcat 服务器进行解析和托管项目
- asp 页面使用微软系统的 iis 服务器进行解析和托管项目
- javascript 页面使用 Tomcat服务器或者 jboss 服务器进行项目托管和解析
三、浏览器的工作原理
上面解释了web所需要的 web server 和database ,下面介绍与用户看的见的浏览器browser,常见的浏览器有微软的 IE (内核是 trident)、谷歌的 Chrome (内核是webkit)、苹果的 safari (内核是webkit),火狐浏览器 FireFox (内核是gecko)、欧朋浏览器 Opera(内核是presto)。
浏览器主要由用户接口、浏览器引擎、渲染引擎、网络、js解释器、ui 后端、数据库构成,下面以** 百度搜索浏览器为例** 说明浏览器的工作原理:
- 用户访问百度网页,发送搜索浏览器请求到服务器
- 服务器对请求进行解析,并将结果发送给数据库
- 数据库接收并处理请求,并得到结果,将结果反馈给服务器
- 服务器接收结果反馈,对结果反馈进行解析,并生成html文件,放入http 响应 response中,返回浏览器
- 浏览器解析http response,并创建 DOM 树
- 浏览器下载 css 样式,对 DOM 树进行渲染
- 浏览器下载js,并执行js程序
- 浏览器显示响应内容,用户看到搜索数据
四、DNS 解析
访问互联网网站,比如访问百度,我们只需要输入 http://www.baidu.com 我们就可以访问到百度,为什么我们不需要输入他的路径呢?这就是 DNS 的功劳,下面是百度百科的解释:
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)
DNS 的工作过程:
- 操作系统先检查本地的 hosts 文件是否有这个网址的映射关系,如果有,则调用这个IP地址映射,完成解析(hosts文件位置-->C:\Windows\System\drivers\etc\hosts)
- 如果hosts文件没有此映射,则将该请求发送到本地域名服务器
- 如果本地没有此映射,则该请求发送到根域名服务器(13个根域名服务器--美国国防部(主根域名)---辅根域名12(美国9、日本1、英国1、瑞典1))
- 根域名服务器将数据返回给本地域名服务器,本地域名服务器将此映射保存到缓存,以备下次使用;本地域名服务器将结果返回
五、OSI七层模型
OSI七层模型全称是open system interconnection,开发系统互联模型,OSI采用了分层的结构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。例如发邮件,这之间的模型的转换过程,从上到下:
- 应用层:写信
- 表示层:把心的内容进行加密
- 传输层:使用TCP协议提供可靠传输
- 网络层:按照不同的地址进行分析传输
- 链路层:打包
- 物理层:使用光纤或者无线信道传输
写邮件的模型转换过程,从下到上:
- 物理层:使用光纤或者无线信道把数据传输过来
- 链路层:拆包
- 网络层:确定收信地址
- 传输层:使用TCP协议传输信件
- 会话层:不同的用户使用不同的邮箱收取信件
- 表示层:解密操作
- 应用层:查看信件
六、TCP/IP协议
TCP transmission control protocol 传输控制协议,IP,网络互联协议,internet protocol ,百度百科的解释:
TCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和应用层。
主机A和主机B产生传输可概括为三次握手的过程:
第一次握手:主机A发送SYN=1,随机产生一个随机编码SEQNUM=12345
第二次握手:主机B收到请求后,向A发送SYN=1,ACK=1,确认编码acknum=12346,同时发送一个随机编码seqnum=54321
第三次握手:主机A收到后确认acknum=12346和ack=1正确,然后再向主机B发送ack=1,acknum=54322
完成了三次握手,主机A和主机B开始传送数据
七、HTTP协议
HTTP协议是超文本传输协议,是基于请求和响应模式的无状态、无连接、应用层的协议;无状态是指同一个客户不管几次访问同一个服务器的页面,服务器的响应时间和第一次访问时相同,无连接是指每次连接只能处理一次请求。
http协议的URI格式 http://host[:port]/[abs_path]
http协议 主机名/IP地址 端口号(默认80) 请求的资源
http协议由请求和响应组成
请求:三部分构成
- 请求行:method request-uri http-version
请求方法 请求的资源 http版本
请求方法有get、post等,常用这两种方法 - 消息报头 也称为请求报头,一般以Accept开头
- 请求正文,请求的具体内容
响应:三部分构成
状态行:格式为 http-version status-code reason-prase
http版本 状态码 状态码的描述 - 消息报头
- 响应正文
八、web测试分析
1、界面测试
- 图形测试:整体界面风格是否一致;验证文字的正确性,文字的环绕正确性;鼠标移到有特效的部位,出现特效,移开鼠标特效消失;轮播图片,将鼠标一致上方,滚动停止
- 导航测试:导航放在显眼位置;导航分类是否正确,是否可以直观了解整个页面内容
- 内容测试:文本描述信息是否正确;所有标题是否正确;鼠标标题智商,提示信息是否正确
- 表格测试:表格是否直观;表格里的文字是否正确
2、功能测试 - 链接测试 :主要是测试链接中是否包含死链接,链接可分为首页链接、标题链接、资讯链接、图片链接,可使用工具xenu检查死链接
-独立功能测试:针对独立功能进行测试分析 - 数据库测试:功能和页面初始化数据都要与数据库进行比对检验
- 缓存储测试F5刷新,Ctrl+F5强制刷新直接从服务器获取数据,缓存可查看还有缓存保存天数的限制,可针对性设计测试用例
- 兼容性测试:不同的浏览器,相同流量拿起的不同版本进行测试
- 安全性测试:详细见cookie和seeion的区别
- 性能测试:响应时间,页面的加载速度,还有资源利用CPU、内存、网络、硬盘等