http请求

1. 请求(request)
 
1) 请求行 -- request line :请求方法、URL、HTTP协议版本
Request Method:
① get:一般是指获取信息的接口,比如列表查询的功能,点击查询按钮就调用一个get接口,然后把信息返回出来,就是指把内容从服务器上拉下来
② post:一般是提交表单的功能,比如注册、上传、发布帖子之类的,就是指把内容推到服务器上去
其他:put(更新) 、delete(删除)、option(查询)
get和post的区别:
① 参数:get请求参数在url中,以“?”分隔,key + value;post请求参数在表单中(body)
② 安全性:get请求数据展示在url中,用户可以直接看到;post请求安全性更高,因为数据都存放在body中,用户无法直接看到
③ 提交内容:get请求参数长度有限;post请求中表单可以发送更多内容的请求参数
2) 请求头 -- request header:key value形式
User-Agent:产生请求的浏览器类型
Accept:客户端可识别的内容类型列表
Host:主机地址
3) 请求体 -- request body:
请求正文中可以包含用户提交的查询信息,在post方法中,将数据以key value形式发送请求
4)空行
发送回车符和换行符,通知服务器以下不再有请求头
5) 使用chrome开发者工具查看http请求内容:
① 用 Chrome 发请求
② 打开 Network
③ 地址栏输入网址
④ 在 Network 点击,查看 request,点击「view source」可查看请求的前三部分
⑤ 如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到
  
2. 响应(response)
 
1) 响应消息行 -- 包含协议/版本,响应状态码,对响应状态码的描述
状态码 -- status code:
① 1xx :指示信息—表示请求已接收,继续处理
② 2xx :请求成功但业务逻辑不一定成功
③ 3xx :重定向 -- 要完成请求必须进行更进一步的操作
④ 4xx :客户端错误导致 -- 请求有语法错误或请求无法实现
⑤ 5xx :服务端错误导致 -- 服务器未能实现合法的请求
2) 响应头 -- response header(服务器与客户端通信的暗码,告诉客户端该怎么执行某些操作)
3) 响应内容 -- response body(和网页右键“查看源码”看到的内容一样)
4) 使用chrome开发者工具查看http相应内容
① 用 Chrome 查看响应
② 打开 Network
③ 输入网址选中第一个响应
④ 查看 Response Headers,点击「view source」,可已看到响应的前两部分
⑤ 查看 Response 或者 Preview,你会看到响应的第 4 部分
 
 
其他:

1. URL访问网站时的网络传输全过程,可以归纳为:

1) 首先通过域名找到IP,如果缓存里没有就要请求DNS服务器

2) 得到IP后开始与目的主机进行三次握手来建立TCP连接

3) 连接建立后进行HTTP访问,传输并获取网页内容

4) 传输完后与目的主机四次挥手来断开TCP连接

2. 在浏览器中输入url地址后,浏览器和服务器之间都干了些什么

整个流程如下:
域名解析,获取IP地址
建立TCP连接,浏览器发送html请求
服务器web相应,发回html响应
释放TCP连接,浏览器解析html,渲染呈现页面

3. 客户端浏览器向服务器发起http请求的全过程

https://blog.csdn.net/hefeng6500/article/details/75743110

4. 总结:

1、输入网址
2、DNS解析
3、建立tcp连接
4、客户端发送HTTP请求
5、服务器处理请求 
6、服务器响应请求
7、浏览器展示HTML
8、浏览器发送请求获取其他在HTML中的资源

5.如何判断bug是前端还是服务端?

要做判断的原因:1、判断这个bug是前端还是后台的,如果判断准确了,方便我们找对应的人沟通,减少沟通成本, 2、提升测试人员自己定位问题的能力

前台和后台的区别:

前端:主要是负责页面的展示, 以及一些校验,比如字符串的长度格式校验 ,当然这些后台接口也需要做对应的校验的,

后端接口:主要是负责业务相关的功能

case1:文本框输入不合法的内容,点击提交按钮, 如果不合法的内容提交成功, 那应该是前后台没有做校验, 前后台都有这个bug

case2:文本框输入合法的内容,点击提交按钮, 查看数据库中的数据和输入的内容不一致, 这个时候需要看前台传的数据是否正确,使用fiddler抓包, 查看请求头里面的数据是否和输入一致,如果一致就是后台的问题, 如果不一致,就是前台的bug

case3:界面展示不友好, 重复提交 这些都是前台的bug

还可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。

1.请求接口url是否正确

如果请求的接口url错误,为前端的bug

2.传参是否正确

如果传参不正确,为前端的bug

3.请求接口url和传参都正确,查看响应是否正确

如果响应内容不正确,为后端bug

4.也可以在浏览器控制台输入js代码调试进行分析

如果定位为后端的bug,应该如何精确定位是哪里出了bug呢

1.查看报错日志,通过日志分析问题点

2.查看数据库确认数据的正确性

3.查看缓存是否正确

 
 
 
原文地址:https://www.cnblogs.com/annie1226/p/10757070.html