HTTP初识,fiddler的使用,URL各部分介绍,QueryString
目录
一、什么是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初识,fiddler的使用,URL各部分介绍,QueryString
目录 一、什么是HTTP 二、抓包工具 三、请求的首行 URL 四、URL的各部分详细介绍 一、什么是HTTP 现在网页上,我们常见的是https,但是在二十年前是以http为主,这个协议也叫超文本传输协议,文本->字符串,“超文本”->图片…...
计算机毕业设计 基于SpringBoot的图书馆管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
第三章:最新版零基础学习 PYTHON 教程(第十二节 - Python 运算符—Python 中的运算符函数 - 套装1)
Python 在“operator”模块下预定义了许多数学、逻辑、关系、位等运算的函数。本文介绍了一些基本功能。 1. add(a, b):- 该函数返回给定参数的加法。 操作-a +b。 2. sub(a, b):- 该函数返回给定参数的差值。 操作-a -b。 3. mul(a, b):- 该函数返回给定参数的乘积。 操…...
AAD基础知识(identity/token/PRT)
简介 AAD(Azure Active Directory/Azure AD)是微软基于云身份验证和访问控制的解决方案,通过SSO登录其他o365应用(word/outlook/teams…) 微软在2023年7月把AAD重命名为Microsoft Entra ID,官网:https://www.microsoft.com/zh-cn/security/b…...
基于SSM的视频点播系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
React 知识点总结
本篇文章是我自己总结已经写过的react知识点,大框架已生成,知识持续更新中。仅供参考 生命周期 React 生命周期 组件基础 react中受控组件与非受控组件 React Portals 理解React页面渲染原理,如何优化React性能? 学习篇之R…...
ALSA project the C library refrerenc (ALSA工程 C库参考说明)
作者: Jaroslav Kysela perexperex.cz Abramo Bagnara abramoalsa-project.org Takashi Iwai tiwaisuse.de Frank van de Pol fvdpolcoil.demon.nl前言: 高级linux音频架构(ALSA)来自内核API和库的API.这个篇文章描述了应用层库API和内核层API对应是怎么的interfaces.API用法: …...
【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!
文章目录 前言Maven简介Maven是什么Maven的作用 Maven的下载与安装Maven基础概念仓库坐标仓库配置全局setting与用户setting区别 第一个Maven程序(手工制作)第一个Maven程序(IDEA生成)使用模版(骨架)创建Ma…...
MySQL进阶 —— 超详细操作演示!!!(下)
MySQL进阶 —— 超详细操作演示!!!(下) 五、锁5.1 概述5.2 全局锁5.3 表级锁5.4 行级锁 六、InnoDB 引擎6.1 逻辑存储结构6.2 架构6.3 事务原理6.4 MVCC 七、MySQL 管理7.1 系统数据库7.2 常用工具 MySQL— 基础语法大…...
SVM(上):如何用一根棍子将蓝红两色球分开?
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...
libevent源码学习笔记
libevent源码学习笔记 libevent安装libevent源码解析(1)事件对象(2)事件操作(3)事件循环(4)事件处理 常用指令问题记录问题一:长连接的管理问题二:连接关闭问…...
C++ opencv设置视频的捕获方式为 MJPG设置失败
我有一款4k摄像头,在设置分辨率为4k的时候总是出现帧率不够的情况, 使用命令查看 v4l2-ctl --device/dev/video0 --list-formats-ext发现 v4l2-ctl --device/dev/video0 --list-formats-ext ioctl: VIDIOC_ENUM_FMTType: Video Capture[0]: MJPG (Moti…...
计算机网络两位伟人
克劳德艾尔伍德香农 克劳德艾尔伍德香农(Claude Elwood Shannon)是一位美国数学家、电子工程师和计算机科学家,被誉为“信息论之父”。他于1916年生于密歇根州,于2001年去世。以下是一些关于他的详细介绍: 信息论的奠…...
机器学习 不均衡数据采样方法:imblearn 库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...
MySQL系统与内建函数
在游戏开发、特别是像《三国志》这样的大型策略游戏中,数据分析是不可或缺的。从玩家行为到游戏内的战役结果,都需要通过高效的数据分析来优化游戏体验。MySQL的系统和内建函数为这样的分析提供了强大的工具。 本文将详细介绍MySQL中常用的系统与内建函数,并通过《三国志》…...
STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口)
STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口) 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口…...
腾讯云 Cloud Studio 实战训练营结营活动获奖公示
点击链接了解详情 “腾讯云 Cloud Studio 实战训练营” 是由腾讯云联合 CSDN 推出的系列开发者技术实践活动,通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等,让广大开发者沉浸式体验腾讯云开发者工具 Cloud Studio 的同时,实…...
使用晶体管做布尔逻辑和逻辑门
目录 二进制,三进制,五进制 true,false表示0,1 早期计算机采用进制 布尔逻辑 三个基本操作:NOT,AND,OR 基础“真值表” NOT 如何实现? AND如何实现? OR如何实现? 图标表示…...
Linux系统编程系列之线程的信号处理
一、为什么要有线程的信号处理 由于多线程程序中线程的执行状态是并发的,因此当一个进程收到一个信号时,那么究竟由进程中的哪条线程响应这个信号就是不确定的,只能取决于哪条线程刚好在信号达到的瞬间被调度,这种不确定性在程序逻…...
【C语言】青蛙跳台阶 —— 详解
一、问题描述 跳台阶_牛客题霸_牛客网 (nowcoder.com) LCR 127. 跳跃训练 - 力扣(LeetCode) 二、解题思路 1、当 n 1 时,一共只有一级台阶,那么显然青蛙这时就只有一种跳法 2、当 n 2 时,一共有两级台阶ÿ…...
Java - 基本数据类型和封装类型
基本类型有默认值,而包装类型初始为null。然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型。 Java语言提供了八种基本类型。六种数字类型(四个整数型ÿ…...
day-63 代码随想录算法训练营(19) 图论 part 02
1020.飞地的数量 分析:求不跟边界接壤的陆地的数量 思路一:深度优先遍历 先从四个侧边找陆地,然后进行深度优先遍历,把所有接壤的陆地(1)全部转换成海洋(0) 深度优先遍历…...
SpringBoot的全局异常拦截
在 Spring Boot 中,可以通过使用 ControllerAdvice 注解和 ExceptionHandler 注解来实现全局异常拦截。 RestControllerAdvice RestControllerAdvice 是 Spring Framework 提供的注解,用于定义全局异常处理类,并且结合 ExceptionHandler 注…...
『力扣每日一题11』:转换成小写字母
一、题目 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例 1: 输入:s "Hello" 输出:"hello"示例 2: 输入:s "here" 输…...
复习Day07:链表part03:21. 合并两个有序链表、2. 两数相加
之前的blog链接:https://blog.csdn.net/weixin_43303286/article/details/131700482?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Lab…...
Ubuntu中启动HDFS后没有NameNode解决办法
关闭进程: stop-dfs.sh 格式化: hadoop namenode -format 出现报错信息: 23/10/03 22:27:04 WARN fs.FileUtil: Failed to delete file or dir [/usr/data/hadoop/tmp/dfs/name/current/fsimage_0000000000000000000.md5]: it still exi…...
AWS-Lambda之导入自定义包-pip包
参考文档: https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …...
MAC 如何解决GitHub下载速度慢的问题
说在前面 解决github下载速度慢的方法很多,本文主要介绍通过Git镜像的方式解决下载慢的问题。 主要步骤有:1、找到gitconfig文件, 2、通过git命令查看当前生效的config 配置 3、使用git config命令编辑并添加国内镜像源 1、gitconfig 文件在…...
Redis与分布式-哨兵模式
接上文 Redis与分布式-主从复制 1.哨兵模式 启动一个哨兵,只需要修改配置文件即可, sentinel monitor lbwnb 1247.0.0.1 6001 1先将所有服务关闭,然后修改配置文件,redis Master,redis Slave,redis Slave…...
创建型设计模式 原型模式 建造者模式 创建者模式对比
创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色: 抽象原型类:规定了…...
风机网站怎么做/优化大师怎么强力卸载
我尝试在自定义按钮中将符号star(*)居中对齐,但我做不到。如何像其他字符(1,2 ...)一样垂直居中对齐?可以尝试使用以下unicode:fileformat.info/info/unicode/char/2217/index.htm如果您希望将其居中,则应对此进行一些自定义。 对…...
建德建设局网站/软文推广的好处
我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本实例介绍了透明位图的制作知识,并将透明位图在一个对话框…...
平板电脑可以做网站吗/中国营销传播网
第一 ,eclipse 中如何 插件安装 参看 Android 开发环境配置环境变量 (附图) http://blog.csdn.net/janronehoo/article/details/6505289 第二 ,viplugin 插件安装地址 http://viplugin.com/ viPlugin是Eclipse的一个插件…...
网站建设心得小结/百度手机网页
导 语烧TS16,似乎成了业内的全国性症结,整套自观系统里,数它脆弱。好一好,能用三四年;地网不达标的机场,刚换的新的,一个雷,别的不烧,TS16准烧。其中多因为它的供电模块故…...
wordpress自定义分享/百度竞价优缺点
.net平台的rabbitmq使用封装 前言 RabbitMq大家再熟悉不过,这篇文章主要整对rabbitmq学习后封装RabbitMQ.Client的一个分享。文章最后,我会把封装组件和demo奉上。 Rabbitmq的关键术语 1、绑定器(Binding):根据路由规则绑定Queue和Exchange。…...
建国际网站需要多少钱/安徽网站seo公司
如何利用fg迅速回到vim中?当用vim修改某文件中的一个参数时,由于参数很长记不住。往往出现当我们刚刚用vim刚打开这个文件后,就忘记了刚刚的参数。这时我们需要暂时退出这个文件去一个目录中找参数。或者有多次打开关闭同一个文件的操作时。那…...