HTTP初识,fiddler的使用,URL各部分介绍,QueryString

news2024/11/15 3:23:11

 

目录

 

一、什么是HTTP

二、抓包工具

三、请求的首行 URL

四、URL的各部分详细介绍


一、什么是HTTP

现在网页上,我们常见的是https,但是在二十年前是以http为主,这个协议也叫超文本传输协议,文本->字符串,“超文本”->图片/视频

HTTP响应:比如搜狗版的HTML,这个响应的内容,往往是一个html内容

一个网站分为前端+后端(太多了,说不过来)

前端:html(描述网页的结构),css(描述网页的样式),js(网页的行为,与用户的交互)vue esc就不说了

网页上HTML,css,js都是在浏览器执行的,都是访问服务器的时候,从服务器下载到浏览器上,然后才能显示运行。其他的程序都是要先安装,才能够使用,网页是随时用随时下载。网页优势:服务器随时更新,用户就可以用上新版本

劣势:性能比较有限,很难去有一些复杂操作。

二、抓包工具

抓包工具是一种代理:但是代理不仅仅是抓包工具,还有很多体现形式。

代理客户端的叫正向代理

代理服务器的叫反向代理

抓包的工具有很多:wireshark(功能很丰富,但是却很复杂)

                                 fiddler抓包工具(足以应对大部分场景,而且简单方便,但是功能比上面少点,但是够用)

1.直接搜索后安装

有验证码,为啥有复杂的验证码,互联网上80%带宽是被爬虫消耗的。

2.使用

左侧,当前机器上有哪些http数据报交互(不仅能抓浏览器,而且能抓到所有程序)

电脑程序在后台和服务器悄悄的交互(有的为了实现某种功能,有的偷拿你隐私)

右上角是请求的详情

右下角是响应的内容

刚好装完fidder之后,默认只能抓到http的数据,抓到了https,抓不到https(网络上httsp是主流)所以需要稍微设置一下,让fiddler可以抓到https。

1.点击tools->options->https勾上提示框(意思勾选有风险,一路yes)https是加密的,要显示,先解密,要信任保证书。

开了fidder,客户端服务器http,https的请求和响应都会在fidder过一遍(但有一些东西会影响fidder正确运行)

1.https要勾选正确

2.有的代理程序可能和fiddler冲突,确保使用fiddler的时候关闭其他代理。

3.有的浏览器插件,也可能和fiddler冲突

这个是抓去搜狗主页交互过程,上面这些标签页,站在不同视角来解析请求和响应,HTTP是文本协议,IP,TCP ,UDP二进制协议

HTTP加密后是二进制,但是我们勾选完毕就恢复成文本了。在这里我们点击row打开响应,当前http响应,经常会进行压缩(节省带宽)

http响应的内容通常是HTML,CSS,JS

这么看不太直观,干脆这么看

GET http://www.sougou.com/HTTP 11.1.     //1.首行
······
Accept:text/html,application/xhtml       //2.请求头

                                         //3.空行
body                                     //4.正文

响应报文

HTTP/1.1 200 ok.       //1.首行
Connection             //2.响应头
                       //3.空行
body                   //4正文

三、请求的首行 URL

GET https://www.sogou.com/HTTP/1.1

GET:方法

https://www.sogou.com:URL(请求,就是客户端给服务器发起的一个数据,这里要明确指出要访问的服务器是啥,要访问的服务器资源是什么,我们在JDBC中讲过:URL是唯一资源定位符,用来描述网络上的资源的)

HTTP/1.1 :版本号

RFC标准文档,TCP,UDP,IP,HTTP等网络协议,RFC标准文档有更精准的细节内容

http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1 (URL的完整细节)

简单来说
协议名://IP地址:端口号/路径?querystring ->(querystring是键值对的数据,k=uid这个东西,value则是uid等于的那个东西

http:协议名字(协议方案名)

user:pass@ :大部分现在这个地方是不用的,所以也不用多介绍

www.example.jp:可以是IP地址,也可以是域名,也可是外网IP(本身唯一),也可以是内网(访问局域网中的设备)还可以是环回IP(访问自己)

80:服务器端口号

dir/index.html?:访问服务器上哪个资源

uid=1:查询字符串(访问资源,带上啥样的参数)

ch1:片段标识符 (不常见,主要文档类文件)

这个东西就如同卖烤冷面

http://bhu:18/烤冷面?葱花=正常&香菜=苦苦放&醋=必须多放

->针对访问资源进行的补充说明,查询字符串,是键值对的格式,键值对之间用&分隔,键和值之间,用&分隔,键与值之间,使用=分隔,查询字符串以?开始。

实践上,URL来说,上述的几个部分,都是可以省略的~不是说哪个部分必须得保存,IP地址/域省略,此时相当于是访问当前服务器的地址。

访问B站主页,必须带有bilibili主页的html这个html又回触发一些其他的http请求,这些后续触发的http请求,就可以省略ip,省略IP就相当于用bilibili一样的IP。

四、URL的各部分详细介绍

端口号其实也可以省略(常见),省略时,浏览器会自动加上端口(这个端口号表示的是访问目标服务器的是哪个端口)

http:端口号80

https:端口号443

知名端口号:1-1024,都被一些常用的服务器(知名的老东西服务器瓜分了),因此一个网页部署于服务器的时候,往往遵守上述规则,把http绑定到8080,https绑定到443,浏览器访问你的服务器,就不必去多余指定窗口。

其实带层次的路径也能够省略

https://sogou.com/

如果省略相当于访问的是/

/称为根目录(目录是一个树形结构,根目录,就相当于树根一样,服务器提供的资源,也是类似于目录结构一样的,树形结构来组织的,有树,那么就会有树根,/就是树根->通常根节点就会对立服务器的对应主页(约定的规则)

查询字符串也可以没有(有和没有是看我们后端程序员们决定的)

query string中带有一些特殊符号,这些特殊符号,可能在url本身就有一定含义,就导致浏览器/服务器解析失败!(在c++中+就属于特殊符号,+是%2B,假如加号不去切换,就可能导致浏览器/服务器解析失败

/,?,&,=,#同理,都要转换,url的encode的本质转义字符(和我们的/n还不一样这种有自己的规则)

如:c++你好

把转换的内容的二进制的每字节,都用十六进制表示出来,然后每字节前面加一个%

你:十六进制是:E4BDA0

好:十六进制是:E5A5BD

最后会C%2B%2B%E4%BD%A0%E5%A5%BD

经过URL的encode之后,此时querystring就不会出现特殊含义的符号,浏览器和服务器才可以正常识别~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx代理victoriametrics集群配置

1,首先安装nginx yum install -y nginx 2,生成密钥文件 安装htpasswd工具 yum install -y httpd-tools 生成密钥文件,prometheus为用户名 htpasswd -c /etc/nginx/conf.d/passwd prometheus 3,修改nginx配置文件nginx.conf,增加如下内容 upstream vmselect {server 10.…

PyTorch - Dataset 迭代数据接口 __getitem__ 异常处理

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/133378772 在模型训练的过程中,加载数据部分,极其容易出现异常,以及不可控的因素,需要通过异常捕获…

RabbitMQ(15672) 消息中间件 NOTE

目录 1、初识 RabbitMQ 消息队列 1.1 MQ 四大核心概念 1.2 消息的发送(无交换机态) 1.3 关于消息自动重新入队 1.3.1 消息的常见应答方法(R) 1.4 关于 RabbitMQ 的持久化、不公平分发以及预取值 2、RabbitMQ 消息的发布确认…

Timer/计时器发布者与订阅者, Subscribar/文本框订阅模式 的使用

1. Timer 计时器的操作 1.1 实现 /// 计时器 发布者与订阅者 struct TimerBootcamp: View {// 计时器 发布者 timer1/timer3/timer5 1.0 , timer2 2.0 , timer4 0.5let timer Timer.publish(every: 1, on: .main, in: .common).autoconnect()// ---1---// 计算性属性 当前…

线性代数(七) 矩阵分析

前言 从性线变换我们得出,矩阵和函数是密不可分的。如何用函数的思维来分析矩阵。 矩阵的序列 通过这个定义我们就定义了矩阵序列的收敛性。 研究矩阵序列收敛性的常用方法,是用《常见向量范数和矩阵范数》来研究矩阵序列的极限。 长度是范数的一个特…

C语言实现---通讯录

通讯录 前言1.初始化通讯录2.SHOW展示通讯录3.ADD添加联系人的函数4.DEL删除联系人的函数5.SEARCH查找联系人的函数6.MODIFY修改联系人的函数7.销毁通讯录8.整体代码展示1.头文件"contact.h"2.源文件"contact.c"3.测试文件"test.c" 前言 那么好…

解决键盘长按才有反应

问题分析: 排除键盘自身没有问题,那就应该是电脑设置的问题,目前我遇到的不小心长按shift键设置了【筛选键】 解决方式: 打开设置搜索筛选建,关闭,粘带键也会出现类似问题。

【go语言】结构体

结构体 结构体定义 type name struct{value1 type1value2 type2...... }组成结构体的数据称为字段,每一个字段有一个类型和一个名字,每一个字段的名字必须唯一,字段的类型任意。 创建结构体 type myStruct struct{i1 intf1 float32str st…

【软件测试】开发/测试模型

开发/测试模型 瀑布模型 设计:技术文档(设计那些接口,库表,mq,定时任务),UI视觉稿 特点:线性的结构。 优点:每个阶段做什么,产出什么非常清晰 缺点:测试人员介入太晚…

了解CISP,看这篇文章就够了,附上CISP证书题库资料

前言 【点击此处领取CISP题库资料和网络安全学习资】 什么是CISP? CISP是中国信息安全测评中心依据中编办赋予的职能,建立和发展的一整套完整的信息安全保障人才培训体系,从2002年开始启动。 CISP (CertifiedInformation Security Profes…

分享55个C源码源代码总有一个是你想要的

分享55个C源码源代码总有一个是你想要的 链接:https://pan.baidu.com/s/1_zbaunqvmYRhCiX7hbiqmg?pwd8888 提取码:8888 1. 项目名称 apachesubversion版本控制系统 v1.10.3 Ceph分布式文件系统 v17.2.5 clip命令行插图处理器 v0.8 curve分布式存…

在前端设计中,子元素的基线和父元素的基线分别是什么意思?并利用Bootstrap的类align-items-baseline实现子元素在其父容器内基线对齐。

子元素的基线和父元素的基线是用于文本对齐的重要概念。让我解释一下它们分别指的是什么: 子元素的基线(Baseline of Child Elements): 子元素的基线是指子元素内文本的底部边缘,特别是字母的底部边缘。在包含文本的元…

医药行业电力供应3大难题?教你如何破解

电力是现代社会不可或缺的基础设施之一,它支持着工业、商业和生活的各个方面。在这个数字化、电气化的时代,电力配电系统扮演着关键的角色,确保电能以可靠、高效、安全的方式分发到我们的家庭、企业和工厂。 然而,要保持电力分配的…

LeetCode 518.零钱兑换II 动态规划 + 完全背包 + 组合数

给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数。 示例…

DevOps持续集成与交付

概述 Jenkins是一个支持容器化部署的、使用Java运行环境的开源软件,使用Jenkins平台可以定制化不同的流程与任务、以自动化的机制支持DevOps领域中的CI与CD,在软件开发与运维的流程中自动化地执行软件工程项目的编译、构建、打包、测试、发布以及部署&a…

FileManager/本地文件增删改查, Cache/图像缓存处理 的操作

1. FileManager 本地文件管理器,增删改查文件 1.1 实现 // 本地文件管理器 class LocalFileManager{// 单例模式static let instance LocalFileManager()let folderName "MyApp_Images"init() {createFolderIfNeeded()}// 创建特定应用的文件夹func cr…

在英文电脑系统中,中文显示??????

如果操作系统是英文的,那么无论是在cmd界面,还是在Visual Studio的调试界面,中文显示都是一串问号??????? 这是因为在英文系统中,Console 的默认代码页是 437(OEM -United States),不支持中文输入输出&#xff…

照片后期处理软件DxO FilmPack 6 mac中文说明

DxO FilmPack 6 for Mac是一款照片后期处理软件。它可以模拟超过60种著名胶片品牌和类型的色彩和颗粒感,使照片具有复古、艺术和时尚风格。 ​DxO FilmPack 6 mac支持RAW和JPG格式的照片,并提供丰富的调整选项,如亮度、对比度、曝光、阴影和高…

十六.镜头知识之工业镜头的质量判断因素

十六.镜头知识之工业镜头的质量判断因素 文章目录 十六.镜头知识之工业镜头的质量判断因素1.分辨率(Resolution)2.明锐度(Acutance)3.景深(DOF):4. 最大相对孔径与光圈系数5.工业镜头各参数间的相互影响关系5.1.焦距大小的影响情况5.2.光圈大小的影响情况5.3.像场中…

【Java 进阶篇】深入理解SQL查询语言(DQL)

SQL(Structured Query Language)是一种用于管理关系型数据库的强大编程语言。它提供了各种命令和语句,用于执行各种操作,包括数据查询、插入、更新和删除。本文将深入探讨SQL查询语言(DQL),它是…