浏览器F12功能详细介绍

news2024/11/6 7:30:56

哈喽,大家好,我是有勇气的牛排(全网同名)🐮

有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。

掌握浏览器调试基本属于开发者必备的技能,熟悉使用浏览器调试功能已成为每个相关人员的必经之路,对于前端开发者、爬虫工程师、js逆向等人员尤为重要,下面这篇文章将带大家深度了解与使用此项技能,喜欢的可以收藏,以防丢失哦。

文章目录

    • 1 Elements
      • 1.1 鼠标右键
        • 1.1.1 鼠标右键copy元素属性
        • 1.2.2 鼠标右键 Force state(元素状态)
        • 1.3.3 鼠标右键 Break on(页面断点)
      • 1.2 属性
        • 1.2.1 Styles
        • 1.2.2 Computed
        • 1.2.3 Layout
        • 1.2.4 Event Listeners
    • 2 Console 控制台
    • 3 Source 资源
    • 4 Network
      • 4.1 一级配置
      • 4.2 对包(鼠标右键)
      • 4.3 请求包内容属性
        • 4.3.1 Headers 请求头
          • 1、General
          • 2、Response Headers:服务器响应包头
          • 3、Request Headers:请求包头
        • 4.3.2 Response
    • 5 Application
      • 5.1 Application
        • 5.1.1 Storage
      • 5.2 Storage
        • 5.2.1 Local Storage 与 Session Storage

1 Elements

元素(Elements):用于查看或修改html元素的属性、CSS属性、监听事件、断点等。

1.1 鼠标右键

在这里插入图片描述

1.1.1 鼠标右键copy元素属性

这里以百度按钮为例
在这里插入图片描述

1、copy element:复制当前选中元素

<input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">

2、copu outHTML

<input type="submit" value="百度一下" id="su" class="btn self-btn bg s_btn">

3、copy selector

#su

4、copy JS path

document.querySelector("#su")

5、Copy styles

user-select: text!important;
margin: 0;
font-family: Arial,sans-serif;
-webkit-appearance: none;
cursor: pointer;
width: 108px;
height: 44px;
line-height: 45px;
padding: 0;
background: 0 0;
background-color: #4e6ef2;
border-radius: 0 10px 10px 0;
font-size: 17px;
color: #fff;
box-shadow: none;
font-weight: 400;
border: none;
outline: 0;

6、Copy XPath

//*[@id="su"]

7、Copy full XPath

/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[2]/input

1.2.2 鼠标右键 Force state(元素状态)

1、active

2、:hover

3、focus

4、visited

5、focus-within

6、focus-visible

1.3.3 鼠标右键 Break on(页面断点)

1、 subtree modifications

2、attribute modifications

3、node removal

1.2 属性

1.2.1 Styles

元素具体样式

1.2.2 Computed

元素具体布局

1.2.3 Layout

1.2.4 Event Listeners

事件监听:js捕获所有事件

选项:AncesstorseScroll All

  • 勾选:查看所有事件
  • 非勾选:查看当前元素事件

2 Console 控制台

控制台一般用于执行一次性代码,查看JavaScript对象,查看调试日志信息或异常信息。
在这里插入图片描述

Hide network:隐藏网络信息。浏览器预设会印出关于网路的错误Message,例如收到400或500 的状态码就会显示错误。(推荐不隐藏)
Preserve log:刷新页面是否保留控制台信息。
Selected context only:只显示当前上下文,取消勾选将会显示所有上下文。(不勾选)
Group similar messages in console:类似的消息会折叠显示。(勾选)
Show CORS errors in console:是否打印CORS报错。(打印)
Log XMLHttpRequests:是否显示每一个 XMLHttpRequests,XHR finished loading 表示完成。(勾选)
Autocomplete from history:自动生成历史消息。
Evaluate triggers user activation:检测触发用户激活,用于确保代码的执行是由用户触发,而非代码自动执行。

3 Source 资源

打开搜索:三个点->Search
快捷键:Ctrl+Shift+F
在这里插入图片描述

  1. 完整搜索面板如下:
    在这里插入图片描述

  2. 关联本地文件系统
    在这里插入图片描述

  3. 重写:对当前已有的js文件等重写替换
    在这里插入图片描述

  4. 不打开编辑器,临时编辑新js等内容,可以影响到页面,也适用于js调试,油猴脚本等工具的使用。
    在这里插入图片描述

  5. 断点 breakpoint
    在这里插入图片描述
    在这里插入图片描述

    A:从当前断点运行到下一个断点。
    B:逐个方法运行。
    C:进入到当前方法,逐语句运行。
    D:返回到函数被调用的位置(方法调用者的位置)。
    E:逐语句执行。
    F:是否调试(白色生效,开启后[蓝色]用户下的断点会失效)。
    G:异常捕获。

  6. 调试面板
    在这里插入图片描述
    watch:当前作用域变量监听(局部变量也可以监听)。
    Breakpoints:断点列表
    Scope:作用域
    Cll Stack:堆栈
    XHR/fETCH Breakpoints:XHR/fETCH断点列表。
    DOM Breakpoints:DOM断点列表。
    Global Listeners:全局事件。
    Event Listener Breakpoints:全局事件断点列表。
    CSP Violation Breakpoints

  7. 断点鼠标右键属性
    Continue to here
    Remove breakpoint
    Edit breakpoint
    Disable breakpoint
    Add script to ignore list

4 Network

4.1 一级配置

1、Ctrl+F:搜索

2、红色按钮:亮起->抓包状态
3、Preserve log:开启后对历史抓包记录不清除

在这里插入图片描述4、过滤筛选操作
在这里插入图片描述

# 状态 200/304...
status-code:200

# 资源
.js
.png
...

5、一键过滤
在这里插入图片描述
6、Hide data URLS:隐藏带数据的 URL

4.2 对包(鼠标右键)

在这里插入图片描述
1、Open in Sources panel:从资源面板打开。
2、Open in new tab:从新窗口打开。
3、Clear browser cache:清空缓存。
4、Clear browser cookies:清空cookie。
5、Copy:

在这里插入图片描述

  1. Copy link address

    # Copy link address
    https://img-operation.csdnimg.cn/csdn/silkroad/img/1666149376891.gif
    
  2. Copy request headers

  3. Copy response headers

  4. Copy response(复制响应体)

    # 图片:data:image/png;base64,iVBOR...
    # josn文件:json内容
    
  5. Copy stack trace(复制栈)

  6. Copy as PowerShell

    $session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
    $session.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
    Invoke-WebRequest -UseBasicParsing -Uri "https://profile-avatar.csdnimg.cn/0993327ee62846f28be6c94b2efb96a2_zx77588023.jpg!2" `
    -WebSession $session `
    -Headers @{
    "authority"="profile-avatar.csdnimg.cn"
      "method"="GET"
      "path"="/0993327ee62846f28be6c94b2efb96a2_zx77588023.jpg!2"
      "scheme"="https"
      "accept"="image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"
      "accept-encoding"="gzip, deflate, br"
      "accept-language"="zh-CN,zh;q=0.9"
      "cache-control"="no-cache"
      "pragma"="no-cache"
      "referer"="https://i.csdn.net/"
      "sec-ch-ua"="`"Google Chrome`";v=`"105`", `"Not)A;Brand`";v=`"8`", `"Chromium`";v=`"105`""
      "sec-ch-ua-mobile"="?0"
      "sec-ch-ua-platform"="`"Windows`""
      "sec-fetch-dest"="image"
      "sec-fetch-mode"="no-cors"
      "sec-fetch-site"="cross-site"
    }
    
  7. Copy as fetch

    fetch("https://profile-avatar.csdnimg.cn/0993327ee62846f28be6c94b2efb96a2_zx77588023.jpg!2", {
      "headers": {
        "accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
        "accept-language": "zh-CN,zh;q=0.9",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "sec-ch-ua": "\"Google Chrome\";v=\"105\", \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"105\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "sec-fetch-dest": "image",
        "sec-fetch-mode": "no-cors",
        "sec-fetch-site": "cross-site"
      },
      "referrer": "https://i.csdn.net/",
      "referrerPolicy": "unsafe-url",
      "body": null,
      "method": "GET",
      "mode": "cors",
      "credentials": "omit"
    });
    
  8. Copy as Node.js fetch

  9. Copy as cURL(cmd)

  10. Copy as cURL(bash)

  11. Copy as PowerShell

6、Block request URL:
7、Block request domain:
8、Sort By:
9、Header Options:
10、Save all as HAR with content:

4.3 请求包内容属性

在这里插入图片描述

4.3.1 Headers 请求头

1、General

收集请求url、响应的status与代理等信息。
在这里插入图片描述

2、Response Headers:服务器响应包头

Access-Control-*:响应头用于在请求跨域时的处理。
Access-Ranges:是否接受字节范围请求。
Age:消息对象在缓存代理中存储的时长,单位为秒。
Content-Disposition:回复的内容该以何种形式展示,是以内联的形式(预览),还是以附件的形式下载并保存到本地(inline|attachment)。
Content-Security-Policy:允许站点管理者在指定的页面控制用户代理的资源。
Etag:缓存未更改的资源。
Expires:包含日期/时间,即在此时候之后,响应过期;
Last-Modified:其中包含源头服务器认定的资源做出修改的日期及时间。同同行被用作一个验证器来判断接收到的或者存储的资源是否彼此一致。
Location:令客户端重定向至指定URI。
Proxy-Authenticate:代理服务器对客户端的认证信息。
Public-Key-Pins:包含该Web服务器用来进行加密的 public key(公钥)信息。
Public-Key-Pins-Report-Only:设置在公钥固定不匹配时发送错误信息到report-uri。
Refer-Policy:用来监管哪些访问来源信息,会在Refer中发送。
Refer-After:表示用户代理需要等待多长时间之后才能继续发送请求。
Server:首部包含了处理请求的源头服务器所用到的软件相关信息。
Set-Cookie:服务器向客户端发送cookie。
SourceMap:Http相应头链接生成的代码到一个sourcemap,使浏览器能够重建原始的资源然后显示在调试器里。
Strict-Transport-Security:它告诉浏览器只能通过 https访问当前资源。
Timing-Allow-Origin:用于指定特定的站点,以允许其访问Resource Time API 提供的相关信息。
Transfer-Encoding(进制修改):传递给用户所采用的编码形式(gzip|deflate)。
Vary:它决定了对于未来的一个请求头,应该用一个缓存的回复(response)还是向服务器请求一个新的回复。
WWW-Authenticate:定义了使用何种验证方式去获取资源的连接。
X-XSS-Protectiong:当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面。

3、Request Headers:请求包头

Accept:客户端可以处理的内容类型,并使用 Content-Type 应答头通知客户端它的选择。
Accept-encoding(禁止修改):客户端能够理解的内容编码方式(gzip|br|deflate);
Authorization
Cookie:通过 Set-Cookie 设置的值。
DNT:表名用户对于网站追踪的偏好。
Host(禁止修改):请求资源所在服务器。
If-Match:比较实体标记(ETag)。
If-Modified-Since:比较资源的更新时间。
If-None-Match:比较实体标记(与If-Match相反)
If-Range:资源未更新时发送实体Byte的范围请求。
If-Unmodified-Since:比较资源的更新时间(与 If-Modified-Since 相反)
Origin(进制修改):表名了请求来自哪个网站。
Proxy-Authorization:代理服务器要求客户端的认证信息。
Range:告知服务器返回文件的那一部分。在一个Range首部中,可以一次请求多个部分,服务器会以multpart文件的形式将其返回。
Referer(进制修改):包含了当前请求页面的来源地址。
Sec-fetch-*(禁止修改):获取元数据标头指示请求的目的地,即如何使用获取的数据。
Upgrade-Insecure-Requests:表示客户端优先选择加密及带有身份验证的响应;
User-Agent:浏览器信息

4.3.2 Response

响应体

5 Application

5.1 Application

5.1.1 Storage

清除当前页面所有缓存
在这里插入图片描述

5.2 Storage

5.2.1 Local Storage 与 Session Storage

Web Storage分为Session Storage 和 Local Storage,是本地持久化存储用来存储一些不需要让服务器知道。

参考地址:

  • https://www.bilibili.com/video/BV1Kh411r7uR
  • https://segmentfault.com/a/1190000018234763
  • https://blog.csdn.net/mengsandy/article/details/107519894
  • https://www.couragesteak.com/article/273

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

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

相关文章

Unity 2021 LTS中着色器构建时间和内存使用的改进

随着Unity的可脚本渲染管道(SRP)的可用特性集的不断增长&#xff0c;在构建时处理和编译的着色器变量的数量也在不断增加。除了对更多图形api的持续支持和不断增长的目标平台选择外&#xff0c;SRP的改进还在继续扩展。着色器在初始(“干净”)构建后被编译和缓存&#xff0c;从…

自动曝光在移动平台上的实现方案——以《使命召唤手游》为例

一. Intro在PBR渲染中&#xff0c;除了已被大家深入分析了很多遍的PBR材质属性&#xff08;Surface Appearance&#xff09;外&#xff0c;合理的光源强度和后处理也是不可或缺的部分。这里结合工作中的一些实践经验&#xff0c;讨论一下后处理中另一个关键环节——自动曝光在移…

Consul SpringCloudK8S

背景说起微服务&#xff0c;就需要用到SpringCloud&#xff0c;目前市面上主流的SpringCloud产品有这些&#xff1a;SpringCloudNeflix、Spring Cloud Alibaba、Spring Cloud for AWS、Spring Cloud Azure 和 Spring Cloud Kubernetes。其中SpringCloudNeflix已经不在更新&…

C#开发记录——C#开发的OPC客户端无法连接杰控软件的OPC服务器处理办法

1、某些OPC 客户端连接本地服务器失败 某些OPCDa 客户端,例如ABBDCS,.WinCC 等,本地连接服务器失败,需特殊设置; C#开发的就遇到此情况&#xff0c;排查原因&#xff0c;停滞了好几天&#xff0c;终于解决 1.1、打开DCOM 配置,64 位系统需执行: 1.2、从组件服务->计算机-&…

iOS UI自动化测试详解

前言&#xff1a; 小目标 关于UI自动化的定义&#xff0c;我想要的是自动地按照流程去点击页面、输入数据&#xff0c;不需要人去参与&#xff0c;节省人工时间。比如登录&#xff0c;能够自己去填写用户名&密码&#xff0c;然后点击按钮跳转到下一个页面等。在能够保证业…

pandas表格并表(累加合并)

今天需求是用pandas的两张表格合并起来&#xff0c;其中重复的部分将数据进行相加。 用到的是combine&#xff08;&#xff09;这个函数。 函数详细的使用可以看这个大佬的文章&#xff1a; https://www.cnblogs.com/traditional/p/12727997.html &#xff08;这个文章使用的测…

vue之为什么data属性是一个函数而不是一个对象?

为什么data属性是一个函数而不是一个对象为什么data属性是一个函数而不是一个对象&#xff1f;一、实例和组件定义data的区别二、组件data定义函数与对象的区别三、原理分析四、结论为什么data属性是一个函数而不是一个对象&#xff1f; 一、实例和组件定义data的区别 vue实例…

嵌入式物联网【数据处理篇】特殊字符处理(Postman 400 Bad Request)

目录 一、Postman 400 Bad Request 二、C语言特殊字符处理 三、QUrl toPercentEncoding 处理url中含有特殊字符转码 16进制ASCII码对照表 一、Postman 400 Bad Request http请求链接中的特殊字符处理 解决包括Postman 中的post、get等链接请求中的特殊字符&#xff08;如…

谷歌关键词优化多少钱【2023年调研】

本文主要分享Google关键词排名优化的一些成本调研&#xff0c;方便大家参考。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 今年2023年了&#xff0c;谷歌关键词优化到底要多少钱&#xff1f; 答案是&#xff1a;价格在2w~25w左右…

c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始

文章目录 前言一.构造函数中的初始化列表 拷贝对象时的一些编译器优化二.static成员三.友元四.内部类总结前言 前两期我们将类和对象的重点讲的差不多了&#xff0c;这一篇文章主要进行收尾工作将类和对象其他的知识点拉出来梳理一遍&#xff0c;并且补充前两篇没有讲过的…

第3集丨Java中的异常、处理方式及自定义异常汇总

目录一、异常的分类1.1 常见的运行时异常1.2 常见的检查异常1.3 继承关系二、异常处理机制三、try…catch…finally四、声明抛出异常五、人工抛出异常六、自定义异常任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为0&#xff0c;数组下标越界&a…

别学英语了,真的

文 / 王不留&#xff08;微信公众号&#xff1a;王不留&#xff09; 这两年&#xff0c;很多朋友加我微信后&#xff0c;第一句常是&#xff0c;学英语有什么用啊&#xff1f; 我会统一给出真诚答复&#xff1a;没用&#xff0c;真的。 看新闻&#xff0c;中文海量信息已经严重…

建筑行业固定资产管理解决方案

建筑行业的固定资产种类和数量都较多&#xff0c;常用的固定资产有&#xff1a;办公设备、机械、设备、工具等。设备的调拨、购置、测试、验收、建帐立卡、分类编号、技术档案、供应分配、清查盘点、提取折旧、报废、设备维修、设备保养、备件管理、设备巡检和点检等工作&#…

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…

图片如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…

如何熟练掌握Python在气象水文中的数据处理及绘图【免费教程】

pythonPython由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c;使它成为多…

[python课程设计1]学生成绩管理系统

引言本课程设计使用数据库&#xff0c;熟悉了Python语言操作数据库&#xff0c;对数据库的增删改查&#xff0c;实现Qt designer界面设计以及excel表格的读写&#xff0c;代码通俗易懂&#xff0c;方便对所学知识的掌握。需求分析用类对学生成绩、代码封装使得操作使用简单&…

java开启线程的四种方法

文章目录1、继承Thread类1.1 代码实现1.2 测试结果2、实现Runnable接口2.1 方式一&#xff1a;直接实现Runnable接口2.1.1 代码实现2.1.2 测试结果2.2 方式二&#xff1a;匿名内部类2.2.1 代码实现2.2.2 测试结果3、实现Callable接口3.1 代码实现3.2 测试结果4、创建线程池4.1 …

常见帧率计算方法实际效果对比及EasyCVR平台的帧率计算方法

什么是帧、帧数、帧率&#xff1f; 帧 &#xff08;Frame&#xff09; 帧可以理解为视频或者动画中的每一张画面&#xff0c;而视频和动画特效是由无数张画面组合而成&#xff0c;每一张画面都是一帧。 帧数&#xff08;Frames&#xff09; 帧数是帧生成的数量。如果一个动画…

Scala 变量和数据类型(第二章)

第二章、变量和数据类型2.1 注释2.2 变量和常量&#xff08;重点&#xff09;2.3 标识符的命名规范2.4 字符串输出2.5 键盘输入2.6 数据类型&#xff08;重点&#xff09;回顾&#xff1a;Java数据类型Scala数据类型2.7 整数类型&#xff08;Byte、Short、Int、Long&#xff09…