49: HTTP协议; 53: HTTP 响应;

学习目标

  1. 协议内部环节、各个环节的工作原理、漏洞
  2. 使用协议分析工具、编辑协议

 

简介

  1. Hyper Text Transfer Protocol: HTTP 是应用层的协议,最后需要经过TCP 协议(物理层协议)才能传输;延伸(HTTPS, SOAP)
  2.  应用层协议与物理层协议的区别:应用层协议更关注内容
  3. 超文本:所有能够在网页展示的文本
  4. HTML: 构成网页内容的基础,所有元素都是由HTML 来呈现的

特点

  1. 明文传输,安全性差
  2. 无状态协议:比如不会记录客户端的登录状态,每次查看都有重新登录,HTTP -session, cookie 弥补这个不足
  3. 应用层协议,标准化协议

 

特点:协议头;协议正文;

 

HTTP 状态码:

200 : 一切正常

302: 重定向,重定向到其他页面,比如提示页面不存在

404: 页面不存在

1、2 开头,正常;4 开头,请求错误;5 开头,服务器端有问题

 

HTTP 请求:

GET: 请求获取资源(由Request-URI 标识)

request headers:

  1. Accept: 告诉服务器我当前可以处理内容的类型;*/* = 可以处理所有内容
  2. Accept-Language: 客户端可接受语言
  3. User-Agent: 告诉服务器客户端浏览器的版本号;括号之内的信息更重要,是具体的浏览器版本;
  4. Accept-Encoding: gzip, deflate; 压缩方式;为了节省带宽,服务器将要发送的内容压缩(压缩过程是在服务器里发生的,浏览器接收到服务器的压缩信息之后,根据压缩格式解压缩,然后还原出原始文本);这里告诉服务器支持的压缩格式;对应的,服务器也会返回压缩格式(Content-Encoding)
  5. host: 访问的主机,域名
  6. Connection: Keep-Alive, 长连接,TCP 连接类型;长连接存在的原因:在网络连接过程中,都需要建立TCP连接(三次握手、四次挥手);每次连接,都要建立TCP连接,会消耗大量网络资源, 于是引入“长连接”机制;如果下次访问相同的资源,可以重用这样的连接,可以节省资源;过时机制;
  7. Cookie: 稍后分析

 

POST: 在资源(Request-URI 标识)后附加新的数据

  1. POST %%%% HTTP/1.1 : %%% 表示提交数据到某个绝对的URL 地址;
  2. Referer : 发送请求的页面; 可以跟踪来访者,了解来访者的行为;用户是如何访问我的页面的;如果 = 空,表示用户手动输入地址访问我的网站的;

 

提示:

  1. 请求中的信息都是要发给服务器的,便于服务器根据发送的信息做一步处理;
  2. 谷歌浏览器不需要安装HTTPwatch, 直接ctrl + shift + i 打开控制台,在“network” 页签之下即是;点击“view source” 可以看到和HTTPwatch 相同的内容;

 

以上为最常用请求,以下是不常用请求:

  1. HEAD = 请求获取资源相应消息的报头
  2. OPTIONS = 请求查询服务器性能,或查询与资源相关的选项和需求;
  3. PUT = 请求服务器存储资源,并用Request-URI 标识
  4. DELETE = 请求服务器删除资源
  5. TRACE = 请求服务器会送收到的请求信息,主要用于测试或诊断

 

HTTP 响应

  1. Server = web 服务器版本
  2. *Content-Type = 告诉浏览器资源类型,便于正确处理资源(数据是以二进制来发送、传输的,浏览器接收到二进制数据后,根据数据类型解析成对应的文件)
  3. Transfer-Encoding: chunked = 数据传输方式,表示数据是分块传输的,浏览器接收之后,根据一定机制,将数据拼装之后解析;
  4. Cache-Control: private = 缓存控制方式,下次重新访问相同网址时,直接从本地调用
  5. Expires: = 缓存过期时间;过期之后,访问网址时重新从服务器获取缓存;如果Date = Expires, 表示不保存缓存,当下有效,下次访问,重新加载;
  6. 浏览器缓存 = 在本地硬盘中保存了页面;缓存一般说是内存中的缓存,当缓存对象 = “浏览器”时,指的是在本地硬盘保存了页面;
  7. X-UA-Compatible: 支持浏览器兼容模式查看;后面是兼容的浏览器;
  8. Set-Cookie = 服务器生成,发给浏览器,浏览器保存在cookie 文件夹中;

 

注意:

学习这些知识,为的是提高整体的设计测试的能力,根据这些知识分析、判断从哪方面、角度设计测试用例;从整体上把握这些知识,不要深陷这些细节知识出不来。

 

posted @ 2020-02-15 21:04  wsh1995  阅读(417)  评论(0编辑  收藏  举报