软件测试——HTTP相关知识点(1)

    xiaoxiao2025-04-20  19

    发现自己对于http一些知识点并不是很深入,于是买了点http相关的书籍《图解http》《http抓包实战》,整理下关于http中的知识点,http对于前端、测试都是很重要的。

    一、Http协议和Fiddler抓包

    http协议:超文本传输协议,允许将超文本标记语言html从web服务器传送到客户端的浏览器。

    客户端:请求文本或者图像资源的一端

    服务器端:提供资源响应的一端

    http协议工作原理:用户在网站输入对应的url,浏览器给服务器发送http request请求,服务器接收到请求后,返回浏览器一个http response,浏览器解析http响应中的html,于是就看到了网页版的数据。

    fiddler:web调试工具,能记录http请求、https请求、监视、设置断点、修改输入输出值、解压缩、模拟弱网等情况,后面应该会仔细介绍下fiddler的用途。Fiddler是C#语言开发的。

    http请求报文格式:起始行request line、首部Header、主体body

    http响应报文格式:响应行response line、响应首部response header、主体body

    以博客网站为例:

    fiddler抓包工作原理:

    fiddler相当于中间代理服务器,浏览器启动时,fiddler将internet中代理设置为127.0.0.1:8080,退出时,自动取消代理模式,若存在非正常退出情况,可能会出现网络无法连接,可以重启fiddler解决。

    二、https协议和Fiddler抓包

    https协议:超文本传输安全协议,在http协议下加入了SSL(secure socket layer)安全套接层,使用端口443,用途:建立信息安全通道,保证数据传输的安全;确认网站的真实性,可以点击查看网站认证信息或ca证书查询。

    使用fiddler抓包https协议(FireFox):百度无法登录

    解决:选择fiddler中option-export root certificate to desktop,firefox导入下载的证书即可

    三、Http协议请求方法和状态码

    http常见请求方法包括:

    GET:请求页面信息,并返回实体主体

    POST:向指定资源提交数据进行请求,可能会导致新资源的建立和对已有资源的修改

    HEAD :类似get请求,返回的响应中没有具体内容,用于获取报头

    PUT:从客户端向服务器发送指定文档内容

    DELETE:请求服务器删除指定的页面

    Get和Post方法的区别(常见面试题):

    1、get中的url限制长度,提交数据有大小限制,post没有限制

    2、get方法提交会存在安全问题

    3、get方法通过Request.QueryString获取变量值,post通过Request.From获取值

    4、Get请求提交数据放入url中,参数间用&连接,post是将数据存在http包的body中

    状态码:存在于响应报文中,用于告诉浏览器响应结果

    常见状态码:

    200:ok,服务器处理成功

    301/302:重定向,301表示旧地址被永久删除,url到新的地址,302表示原地址仍存在,临时跳转到新地址

    304:未修改,服务器已经执行了get请求,但是文档并没有修改,一般为缓存文件

    404:未找到资源,页面可自定义

    400:请求参数有问题或语法有问题,服务器无法解析

    401:未授权错误

    403:forbidden,服务器不说明错误原因时

    500:服务器错误

    最新回复(0)