当前位置: 首页 > news >正文

02.爬虫---HTTP基本原理

02.HTTP基本原理

    • 1.URI 和 URL 的区别
    • 2.HTTP 和 HTTPS 的区别
    • 3.请求过程

1.URI 和 URL 的区别

  • URL(Uniform Resource Locator)即-统一资源定位符
    URL是用来定位和访问互联网上资源的独特标识,它包括了资源的位置(如IP地址或域名)、端口号(可选)、路径(资源在服务器上的位置)、查询(用于传递参数)和片段(用于指定资源中的特定部分)。例如 http://www.example.com/index.html 是一个指向网站首页的URL。

  • URI(Uniform Resource Identifier)即-统一资源标志符
    URI是一个更广泛的术语,它用来唯一地标识一个资源,而不涉及如何定位该资源。URI可以分为URL和URN两种。URL是URI的一种形式,它提供了定位资源的方法,而URN则是用特定命名空间的名字来标识资源,不包含位置信息。

  • URN(Uniform Resource Name)即-统一资源名称
    URN是URI的一种形式,它通过一个全局唯一的名称来标识资源,这个名称在某个命名空间中是唯一的。URN的目的是提供一种方式,使得即便资源的位置发生变化,依然可以对资源进行标识。例如,urn:isbn:0-395-36341-1 是莎士比亚戏剧《罗密欧与朱丽叶》的ISBN号,这是一个典型的URN示例。

URL:提供了资源的位置和访问方式,是URI的子集,易于人类理解和机器解析。
URI:更通用的资源标识符,可以是URL或URN,用于标识资源,但不提供定位信息。
URN:侧重于通过名称来标识资源,与资源的位置无关,常用于命名空间中标识唯一资源。

关系图:URI = URL+URN
在这里插入图片描述

2.HTTP 和 HTTPS 的区别

在这里插入图片描述

HTTP(超文本传输协议)英文(Hyper Text Transfer Protocol)

  • 安全性:HTTP协议传输的数据是未加密的,可以被第三方拦截和阅读
  • 连接状态:HTTP连接在数据传输过程中是明文的,一旦连接被截断,数据就有可能被窃取或篡改
  • 端口号:80端口
  • 性能:比HTTPS好
  • 证书:HTTP不需要使用证书

HTTPS(超文本传输安全协议)英文(Hypertext Transfer Protocol Secure)

  • 安全性:HTTPS通过SSL/TLS协议对数据进行加密,确保数据在传输过程中的机密性和完整性,防止数据被截获或篡改
  • 连接状态:HTTPS连接在数据传输过程中始终保持加密状态,即便连接在传输过程中被截断,也不会影响数据的加密状态
  • 端口号:443端口
  • 性能:HTTPS需要进行加密和解密操作,可能会增加服务器和客户端的计算量,导致性能开销
  • 证书:HTTPS需要使用SSL/TLS证书来验证服务器的身份,确保用户连接的是合法的服务器,防止中间人攻击

3.请求过程

在这里插入图片描述
打开电脑浏览器,访问百度 http://www.baidu.com/,这时候鼠标右键并选择 “检查” 菜单(或直接按快捷键 F12),即可打开浏览器的开发者工具,如下图所示:

在这里插入图片描述
其中各列的含义如下:

  • Name:请求的名称,一般会将 URL 的最后一部分内容当作名称。
  • Status:响应的状态码,这里显示为 200,代表响应是正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。
  • Protocol:请求的协议类型,这里 http/1.1 代表是 HTTP 1.1 版本,h2 代表 HTTP 2.0 版本。
  • Type:请求的文档类型。这里为 document,代表我们这次请求的是一个 HTML 文档,内容就是一些 HTML 代码。
  • Initiator:请求源。用来标记请求是由哪个对象或进程发起的。
  • Size:从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源,则该列会显示 from cache。
  • Time:发起请求到获取响应所用的总时间。
  • Waterfall:网络请求的可视化瀑布流。

随便点击一个条目,即可看到其更详细的信息,我们看一下比较常用的 如图所示

在这里插入图片描述
通用头 (General)

  • Request URL: 请求的网址
  • Request Method: 请求方法(GET,HEAD,POST,PUT,DELETE,CONNECT,OPTIONS,TRACE)
  • Status Code: 请求状态(2xx,3xx,4xx,5xx) 点击参考 HTTP响应状态码一览表
  • Remote Address:HTTP请求的远程地址,即HTTP请求的源地址
  • Referrer Policy:Referer提供访问来源的信息,告诉服务器,用户在访问当前资源之前的位置,发生传场景包含:加载图片、样式文件、JS文件、请求。浏览器会将当前网址作为Referer字段,放在 HTTP 请求的头信息发送

请求头(Request Headers)

  • Content-Length:HTTP消息长度, 用十进制数字表示的八位字节的数目,消息实体的长度,用于消息的分包和粘包处理
  • Content-Type: 互联网媒体类型 点击参考

响应头(Response Headers)

  • Accept:请求报头域,用于指定客户端可接受哪些类型的信息
  • Accept-Encoding:指定客户端可接受的内容编码
  • Accept-Language:指定客户端可接受的语言类型
  • Connection:是否开启长链接。close为不长连接,keep-alive保持长连接
  • Cookie:维持当前访问会话
  • Host:用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。从 HTTP 1.1 版本开始,请求必须包含此内容
  • Referer:是HTTP请求header的报文头,用于指明当前流量的来源参考页面。通过这个信息,我们可以知道访客是怎么来到当前页面的
  • Sec-Ch-Ua:可以理解用来替代user-agent的,用sec-ch-ua可以防止泄露浏览器详细信息
  • Sec-Ch-Ua-Mobile:是否是移动端用户
  • Sec-Ch-Ua-Platform:表示操作系统名称
  • Sec-Fetch-Dest:表示请求的目的地,即如何使用获取的数据
  • Sec-Fetch-Mode:该请求头表明了一个请求的模式
  • Sec-Fetch-Site:请求发起者的来源与目标资源来源之间的关系
  • User-Agent:简称 UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别为爬虫

相关文章:

02.爬虫---HTTP基本原理

02.HTTP基本原理 1.URI 和 URL 的区别2.HTTP 和 HTTPS 的区别3.请求过程 1.URI 和 URL 的区别 URL(Uniform Resource Locator)即-统一资源定位符 URL是用来定位和访问互联网上资源的独特标识,它包括了资源的位置(如IP地址或域名&a…...

HTTP响应的基本概念

目录 HTTP响应中的一些信息 HTTPS HTTP响应中的一些信息 状态码:描述了这次HTTP请求是否成功,以及失败的原因。 1)200 ---OK 表示这次访问成功了。 2)404 ---Not Found 表示客户端请求的资源在服务器这边不存在。 3&a…...

链栈的存储

单向链表在栈中的存储 typedef struct StackNode {SElemType data;struct StackNode* next; }StackNode, *LinkStack; LinkStack S; //链栈初始化 void InitStack(LinkStack& S) {S NULL;return OK; } //判断链栈是否为空 Status StackEmpty(LinkStack S) {if (S NU…...

常见网络协议及端口号

https://www.cnblogs.com/Snail-yellow/p/17722411.html 常见的网络协议-腾讯云开发者社区-腾讯云 常见的网络协议知识整理_五种常用的网络协议-CSDN博客 端口 协议 常见的网络协议_计算机网络协议有哪些csdn-CSDN博客 ​​​​​​​​​​​​​​协议 常见的网络协议知…...

几张自己绘制的UML图

全部来源于公司项目,使用建模工具 Enterprise Architect。自己做的其余文档(含绘图),因保密协议不便于公开。...

[读论文]精读Self-Attentive Sequential Recommendation

论文链接:https://arxiv.org/abs/1808.09781 其他解读文章:https://mp.weixin.qq.com/s/cRQi3FBi9OMdO7imK2Y4Ew 摘要 顺序动态是许多现代推荐系统的一个关键特征,这些系统试图根据用户最近执行的操作来捕获用户活动的“上下文”。为了捕捉…...

HTML静态网页成品作业(HTML+CSS)——动漫海绵宝宝介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…...

开放式耳机2024超值推荐!教你如何选择蓝牙耳机!

开放式耳机的便利性让它在我们的日常生活中变得越来越重要。它让我们摆脱了传统耳机的限制,享受到了更多的自由。不过,市面上的开放式耳机种类繁多,挑选一款既实用又实惠的产品确实需要一些小窍门。作为一位对开放式耳机颇有研究的用户&#…...

程序员搞副业的障碍有那些?

利用信息差是最常见的商业模式 在这个世界上,没有什么是所有人都知道的,信息差总是存在的。 无论是经验、技巧、知识,甚至是常识,都可能是信息差的源泉,而存在信息差的地方就意味着有赚钱的商机。 面对用户需求的金…...

windows7的ie11降级到ie8

重点是要在程序管理窗口中“查看已安装的更新”打开当前系统中已安装更新列表,找到两个IE11的更新(见下图“卸载文件“)并卸载掉,这样windows功能中的ie11才会变成ie8. 打开控制面板 进入面板,点击程序,进…...

楼房vr安全逃生模拟体验让你在虚拟环境中亲身体验火灾的紧迫与危险

消防VR安全逃生体验系统是深圳VR公司华锐视点引入了前沿的VR虚拟现实、web3d开发和多媒体交互技术,为用户打造了一个逼真的火灾现场应急逃生模拟演练环境。 相比传统的消防逃生模拟演练,消防VR安全逃生体验系统包含知识讲解和模拟实训演练,体…...

rust 学习--所有权

所有权是rust的核心功能。 Rust 是通过所有权来管理内存回收的 栈(Stack) 栈是后进先出的 栈中存储的数据在编译时是固定内存大小的数据 数据移除栈叫出栈,数据存入栈叫入栈 入栈要比在堆上分配内存块,入栈时分配器无需为存储…...

关于Git 的基本概念和使用方式

Git是一个分布式版本控制系统,用于跟踪和管理代码的改动。它具有以下基本概念和使用方式: 1. 仓库(Repository):Git使用仓库来存储代码和相关的历史记录。仓库可以是本地的,也可以是远程的。本地仓库保存在…...

《计算机网络微课堂》1-6 计算机体系结构

常见的计算机网络体系结构 从本节课开始,我们要用 4 次课的时间来介绍有关计算机网络体系结构的知识,具体包含以下内容: 一,常见的计算机网络体系结构二,计算机网络体系结构分层的必要性三,计算机网络体系…...

大模型的灵魂解读:Anthropic AI的Claude3 Sonnet可解释性研究

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技…...

大模型框架:vLLM

目录 一、vLLM 介绍 二、安装 vLLM 2.1 使用 GPU 进行安装 2.2 使用CPU进行安装 2.3 相关配置 三、使用 vLLM 3.1 离线推理 3.2 适配OpenAI-API的API服务 一、vLLM 介绍 vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架。它利用了全新的注意力算法「PagedAtten…...

SQL 使用心得【持续更新】

COUNT(字段) 不会统计 NULL 值,但是COUNT(*)会只要有子查询,就需要给子查询定义别名!where 后面的条件表达式中不能存在聚合函数,但是 Having 可以聚合函数基本上都是需要配合 group…...

基于Spring Boot的高校图书馆管理系统

项目和论文都有企鹅号2583550535 基于Spring Boot的图书馆管理系统||图书管理系统_哔哩哔哩_bilibili 第1章 绪论... 1 1.1 研究背景和意义... 1 1.2 国内外研究现状... 1 第2章 相关技术概述... 2 2.1 后端开发技术... 2 2.1.1 SpringBoot 2 2.1.2 MySQL.. 2 2.1.3 My…...

python(4) : pip安装使用国内源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests...

让写书人勇敢穿越纸海的迷雾

坚守纸海:让写书人勇敢穿越纸海的迷雾 你作为一位写书人,在创作过程中你需要坚守初心是非常重要的。在创作的过程中,你会遇到各种挑战和困难,你要勇敢面对迷雾中的挑战,并通过不懈的努力和决心,成功地穿越…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...