zoukankan      html  css  js  c++  java
  • 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.查看缓存是否正确

     
     
     
  • 相关阅读:
    (x^n-1)在实数域上的标准分解
    子数列收敛定理(任何有界数列必有收敛子数列)
    Islamic empire
    Cauchy收敛准则
    Islamic
    用上下极限判定数列的算数平均值的极限
    妞妞打车之最多的硬币
    信仰1056
    棋盘游戏
    取石子的游戏
  • 原文地址:https://www.cnblogs.com/annie1226/p/10757070.html
Copyright © 2011-2022 走看看