供面试复习使用,内容主要来自《HTTP抓包实战 作者:肖佳》和《图解HTTP 作者:日本上野宣》

关于HTTP协议

一、web网页是如何显示出来的?
1、打开浏览器,输入url地址,此时web浏览器向web服务器发送了一个HTTP请求
2、web服务器接收到HTTP请求后开始进行处理,生成一个HTTP响应,发送回给web浏览器
3、浏览器接收到HTTP响应后,将其中包含的web网页内容(即HTML)展示出来。
(若HTML中引用了很多其他文件,如图片、CSS、JS文件等,浏览器会自动再次发送多个子请求给web服务器,去获取这些资源。当所有的子请求全部返回后,浏览器会将所有请求都渲染出来,网页就在浏览器中成功展示了。)

二、一个HTTP请求由哪些部分组成?
HTTP请求由起始行、header首部、body主体这三部分组成。
起始行中,包括请求方法、URL地址、HTTP协议版本。例如:GET https://www.baidu.com/ HTTP/1.1

三、一个HTTP响应由哪些部分组成?
HTTP响应由响应行、header响应首部、body主体三部分组成。
响应行中,包括HTTP协议版本、状态码、状态码消息。例如:HTTP/1.1 200 OK

四、Get和Post方法的区别有哪些?
1、使用场景不同
Get:主要用于请求资源,比如打开网站首页、进行搜索或查询操作等
Post:主要用于表单提交,比如用户登录等。
2、请求内容存放位置不同
Get方法中,请求参数放在URL中,body主体中没有内容,是空的。
Post方法中,请求参数等内容都放在body主体中。
3、提交数据大小限制不同
Get方法中,由于请求数据放在URL中,URL中能支持的数据长度较短(不同浏览器对URL的长度限制不同)。
Post方法中,由于请求数据放在body主体中,主体中能支持的数据长度较长。
4、相对来讲,Post能比Get安全一些
例如传输用户名和密码等,一般使用post方法。get方法传输的话,用户名和密码放在url中,可能被浏览器保存到历史浏览记录中,其他人如果也使用这台机器很容易获取到用户名和密码。

五、常用的状态码举例,其代表什么含义?

HTTP协议的状态码分为5类
1XX:信息提示,表示请求已接收,继续处理
2XX:成功,表示请求已接收
3XX:重定向,要完成请求,需进一步处理
4XX:客户端错误,有语法错误或请求资源不存在
5XX:服务端错误,服务器未能实现该请求

其中最常用的状态码有:
200:OK,服务器成功处理了请求
301:永久重定向,请求的url已永久性转移到了另一个地址,在服务器的响应报文中包含location URL,即资源现在使用的地址。
302:暂时重定向,一般由以下两种情况:
1)请求的url临时更换为新地址,在服务器的响应报文中包含location URL,即临时指向的地址
2)如用户处于未登陆状态时,若想要访问需要登陆才能访问的页面,服务器会返回302状态码,跳转到登陆页面
304:Not Modified,未修改,客户端的缓存资源是最新的,客户端使用缓存即可
401:禁止访问
404:Not Found,未找到资源
501:Internal Server Error,服务器遇到错误,无法正确提供请求。

六、HTTPS协议和HTTP协议的区别?
HTTPS协议就是加密了的HTTP协议,即HTTP+SSL(或TSL)。采用HTTPS的网站需要到数字证书认证机构去申请CA证书。

七、HTTP header一般包含什么内容?
1、cookies
2、cache:如是否使用缓存、缓存文件的时间戳、缓存的超时时间等信息。
3、accept:浏览器客户端能接受的媒体类型,比如text/html代表浏览器可以接受服务器返回的html。
accept-encoding:浏览器支持的压缩方式。
accept-language:浏览器支持的语言。
4、user-agent:浏览器告诉服务器,客户端所使用的操作系统版本、cpu型号、浏览器版本、浏览器语言和插件等信息。
5、referer:浏览器告诉服务器用户来自哪个页面。
6、host:web服务器地址和端口号。

关于Fiddler

一、Fiddler能做什么?
Fiddler是一款功能强大的抓包工具,能获取和记录客户端与服务器之间的HTTP(及HTTPS)请求。
1、抓包:抓取HTTP请求和响应内容。
2、改包:设置断点,拦截HTTP请求或响应报文,修改后再放行。
3、模拟各种客户端:fiddler可修改user-agent内容,伪装成各种客户端发送请求。
4、弱网测试:通过限制HTTP请求或响应的速度,来模拟网络延迟。

二、Fiddler为什么能抓包?
Fiddler实际上是一个web代理服务器,代理地址为127.0.0.1,默认端口为8888。代理服务器位于Web浏览器和Web服务器中间,扮演“中间人”的角色。
1、当Fiddler启动抓包时,会将本机internet连接中,设置为使用代理服务器,地址为127.0.0.1,端口号为8888
2、当Fidder关闭抓包时,将本机internet选项中,取消代理设置。
Fiddler只能抓HTTP和HTTPS协议的包,其他协议的包是抓不到的,比如qq聊天时候发送的消息,就是抓不到的。

三、Fiddler怎么修改HTTP协议内容?
举例,假设对www.baidu.com发送请求,
1、若要修改HTTP请求的内容
1)在fiddler左下角的命令行中,输入bpu www.baidu.com
2)浏览器中打开百度首页,即发送HTTP请求
3)fiddler中,该HTTP请求显示出来,且有个红色的T标志
4)在右侧的界面中,打开raw tab页,可手动修改请求的内容,点击【Run to completion】放行
5)输入bpu则取消断点设置。
2、若要修改HTTP响应的内容,在fiddler左下角命令行中,输入bpafter www.baidu.com,其他同上

四、Fiddler如何实现弱网测试?
弱网一般指在电梯、地铁、公交车、隧道等场景下使用客户端浏览网页或者APP,此时可能会发生如下问题:
1、操作时间慢
2、用户体验差,出现闪退、卡死等情况
3、非正常情况下,出现bug的可能性增加,比如在电梯里打开app抢代金券,可能因为网络不好点击按钮后无反应,就多次点击按钮,导致网络恢复后,该用户抢了N多张代金券(需求是一个用户只能抢一张代金券)

弱网可分为如下场景:
1、网络慢,有延迟:fiddler的Rules->Performance->Simulate Modem Speeds,如果需要设置具体的延迟时间,可在FiddlerScript脚本中修改。
2、网络中断或者网络超时:都可以通过下断点的方式来模拟。

“软件测试工程师”面试复习之《HTTP协议及抓包工具Fiddler》相关推荐

  1. HTTP协议和抓包工具Fiddler

    HTTP,Fiddler 1.HTTP是什么 2.HTTP协议与客户端和服务器 3.HTTP协议的报文格式 1.抓包工具 2.HTTP报文格式 1.HTTP请求的报文格式 2.HTTP响应的报文格式 ...

  2. Http协议和抓包工具

    爬虫系列目录 1.HTTP协议和抓包工具 文章目录 爬虫系列目录 理解Http协议 常见请求头参数 常见响应状态码 Chrome抓包工具的使用 理解Http协议 http: 80 https: 443 ...

  3. HTTP、HTTPS协议以及抓包工具

    文章目录 前言 一.HTTP 1.HTTP是什么? 2.HTTP工作过程 3.HTTP协议格式 (1)HTTP请求(request) URL 方法(method):最主要的有get/post 报头(h ...

  4. 《软件测试工程师面试秘籍》—第1章1.3节过关斩将

    本节书摘来自异步社区<软件测试工程师面试秘籍>一书中的第1章1.3节过关斩将,作者51Testing软件测试网 , G.li,更多章节内容可以访问云栖社区"异步社区"公 ...

  5. 软件测试工程师面试如何描述自动化测试是怎么实现的?

    软件测试工程师面试的时候,但凡简历中有透露一点点自己会自动化测试的技能点的描述,都会被面试官问,那你结合你的测试项目说说自动化测试是怎么实现的?一到这里,很多网友,包括我的学生,也都一脸懵逼的样子. ...

  6. 软件测试工程师面试接口测试常见问题

    软件测试工程师面试被问到:"你做过哪些测试".可是你会回答"做过接口测试". 1,接口测试是什么呢? 简单回答:接口测试就是测试系统组件间的接口.测试接口间数据 ...

  7. 今日头条面试真题及答案——软件测试工程师面试秘籍

    2018年今日头条面试真题及答案 试题1.在浏览器地址栏里输入一个网址,接下来会发生什么? 答案:发生的操作如下. (1)浏览器查找该网址的IP地址. (2)浏览器根据解析得到的IP地址向Web服务器 ...

  8. 软件测试工程师面试秘籍_成为一名出色的软件工程师的一个秘诀:阅读代码

    软件测试工程师面试秘籍 通过建立例程和阅读代码的习惯来成为更好的程序员 这是我偶尔写的系列文章" 给年轻软件工程师的笔记"中 的帖子 . 在 这里 注册 . Redis的代码片段 ...

  9. 参加软件测试工程师面试前,这些内容你一定要准备

    在参加软件测试面试时,很多小伙伴会因为面试前准备不充分,而导致面试通过率降低.基于此,我向多年面试软件测试工程师的HR取了经,并结合自己的经历,总结成文,希望对即将参加软件测试面试的小伙伴们,有所帮助 ...

最新文章

  1. 上海高考听说测试什么软件,2021上海市高考外语听说测试模拟系统使用方法及注意事项...
  2. Win7下安装git
  3. flutter 动画展开菜单_Flutter ExpansionPanel 超级实用展开控件
  4. 微信x漫威首款小程序公开!揭露未来“看展”趋势
  5. 如何在Linux上下载MongoDB
  6. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
  7. win8更改计算机锁屏时间,在win8系统中设置自动锁屏功能的方法
  8. 如何做一份漂亮的年终总结报告?教你5个实用套路
  9. 如何将FPGA程序固化到外部Flash存储器
  10. 推流是什么,直播为什么要推流
  11. selenium必应搜索,获取标题以及url
  12. 大数据搜索引擎技术_网络数据搜索技术
  13. Macbook m1安装java与IntelliJ
  14. 嵌入式Linux之swi异常处理
  15. 《笨方法学 Python 3》35.分支和函数
  16. python 分行读取txt文件
  17. 易事特拟8600万元投资山东潍坊临朐县光伏扶贫BOT项目
  18. web 项目 连接mycat 读写分离失效问题
  19. 2019年,人工智能领域有哪些突破值得期待?
  20. java : mozilla rhino js Test URL or Socket

热门文章

  1. 【Java—— 微服务结构】
  2. 详解如何用爬虫批量抓取百度搜索多个关键字数据
  3. 大白话之辩论DDD,阿里面试中台化理解
  4. vue数据恢复_Vue 恢复初始值的快速方法
  5. 如何在python中输入复杂的数学公式_如何快速方便随意的在Word中输入复杂的数学公式...
  6. 如何保证高速公路供电可靠
  7. ISO 270001-2005学习(一)
  8. Thoughtworks心得体会
  9. 站在巨人肩膀上创新?怕是站在巨人肩膀上“打包”吧
  10. 人脸补全(上下脸)知识笔记