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,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别为爬虫

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

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

相关文章

移动硬盘难题:不显示容量与无法访问的解决策略

在使用移动硬盘的过程中,有时会遇到一些棘手的问题,比如移动硬盘不显示容量且无法访问。这种情况让人十分头疼,因为它不仅影响了数据的正常使用,还可能导致重要数据的丢失。接下来,我们就来详细探讨一下这个问题及其解…

CentOS 7安装/卸载Grafana

说明:本文介绍CentOS 7操作系统如何安装/卸载Grafana; 安装 Step1:下载rpm文件 敲下面的命令,下载grafana的rpm文件 wget https://dl.grafana.com/oss/release/grafana-7.3.7-1.x86_64.rpmStep2:安装grafana 敲下…

使用xxl-job-executor-go 接入xxl-job实现定时任务调度

定时任务是软件开发中很常见的一种处理业务的机制,xxl-job是近些年比较火的定时任务调用组件,其采用java 实现,是一个高可用,分布式调用的组件,还支持多种定时任务有关的特性,不仅能轻易的用java 客户端接入…

SpringBoot高级原理详解

今日内容: 理解SpringBoot自动化配置源码理解SpringBoot健康监控 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 目的:通过依赖能了解SpringBoot管理了哪些starter讲解: 通过依赖 spring-boot-dependencies 搜索 …

【C++】<知识点> 标准模板库STL(上)

文章目录 一、STL---string类 1. 常用构造函数 2. 常用操作 3. 字符串流处理 二、STL---容器 1. STL及基本概念 2. 顺序容器简介 3. 关联容器简介 4. 容器适配器简介 5. 常用成员函数 三、STL---迭代器 1. 普通迭代器 2. 双向、随机访问迭代器 3. 不同容器的迭代器…

数据结构:二叉树与树

一 树的基本概念: 1.树的形状: 2.树的定义: 树是一种非线性的数据结构,它是n(n > 0)个结点的有限集。当n 0时,称为空树。在任意一棵非空树中应满足: 2.1 有且仅有一个特定的称为根的结点。 2.2 当n …

k8s二进制安装与部署

目录 一、实验目的 二、实验环境 三、实验步骤 3.1 操作系统初始化配置 3.2 部署 docker引擎 3.3 部署 etcd 集群 3.3.1 在 master01 节点上操作 ​3.3.2 在 node01 节点上操作 3.3.3 在 node02 节点上操作 3.4 部署 Master 组件 3.4.1 在 mast…

Softing工业推出新品edgeGate:一款用于工业边缘和云应用的硬件网关

2024年4月17日(哈尔),Softing工业自动化在2024年汉诺威工业博览会上首次展示了新品edgeGate。该产品是一个无需维护的硬件物联网网关解决方案,可将生产数据从PLC和数控机床控制器传输至工业边缘及物联网云平台。 (edge…

MiniMax Golang2轮面试,期望薪资25K

一面 1、自我介绍 2、简单介绍一下你们成立了这个finance的财务中台之后,整体的服务架构是怎么样的吗? 3、就你提到的预算池项目,展开说说背景,以及解决了怎么样的问题? 4、为什么采用针对T-1订单的异步计算方案&a…

jmeter线程组(下篇)

线程组 线程组作为JMeter测试计划的核心组件之一,对于模拟并发用户的行为至关重要。线程组元件是整个测试计划的入口,所有的取样器和控制器必须放置在线程组下。 可以将线程组视为一个虚拟用户池,其中每个线程可被理解为一个虚拟用户&#x…

(Java面试题分享)万里长征-03-搜狐

万里长征-03-搜狐 ⚙ 以下内容基于GPT-4o模型 问题 1.LeetCode103 二叉树的锯齿形层序遍历 103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode) 2.LeetCode5 最长回文子串 5. 最长回文子串 - 力扣(LeetCode) 3.Kafka为何那么快 …

初学者都能掌握的操作符(中)

(1)位操作符(& | ^) &:(按二进制位“与”) 也就是两个数的每一位二进制数按照 “与” 的算法,如下: int a 3 ,b 5 ; c a & b; 我们首先写出a和b的二进…

5.23.12 计算机视觉的 Inception 架构

1. 介绍 分类性能的提升往往会转化为各种应用领域中显着的质量提升,深度卷积架构的架构改进可用于提高大多数其他计算机视觉任务的性能,这些任务越来越依赖于高质量的学习视觉特征。在 AlexNet 功能无法与手工设计、制作的解决方案竞争的情况下&#xf…

如何评价刘强东说“业绩不好的人不是我兄弟”

在近日的一次京东管理层会议上,创始人刘强东以不容置疑的口吻表明了对公司文化的坚定态度:“凡是长期业绩不好,从来不拼搏的人,不是我的兄弟。”这句话不仅是对那些工作表现不佳的员工的直接警告,也透露出京东在追求业…

three.js能实现啥效果?看过来,这里都是它的菜(08)

在Three.js中实现旋转动画的原理是通过修改对象的旋转属性来实现的,通常使用渲染循环(render loop)来更新对象的旋转状态,从而实现动画效果。 具体的原理包括以下几个步骤: 创建对象:首先创建一个需要旋转…

AIGC-风格迁移-style Injection in Diffusion-CVPR2024HighLight-论文精度

Style Injection in Diffusion: A Training-free Approach for Adapting Large-scale Diffusion Models for Style Transfer-CVPR2024HighLight 代码:https://github.com/jiwoogit/StyleID 论文:https://jiwoogit.github.io/StyleID_site/ 为了解决风格迁…

你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

目录 一、onMounted的前世今生 1.1、onMounted是什么 1.2、onMounted在vue2中的前身 1.2.1、vue2中的onMounted 1.2.2、Vue2与Vue3的onMounted对比 1.3、vue3中onMounted的用法 1.3.1、基础用法 1.3.2、顺序执行异步操作 1.3.3、并行执行多个异步操作 1.3.4、执行一次…

Rust腐蚀怎么用服务器一键开服联机教程

1、进入控制面板 首次登陆需要点击下方重置密码,如何再点击登录面板,点击后会跳转到登录页面,输入用户名和密码登录即可 2、设置游戏端口 由于腐蚀的设置需要三个端口,它们用于游戏端口(必须为首选端口)&a…

FFMPEG 解码过程初步学习

1. 视频文件解码过程 解码过程 步骤如下: 视频文件(封装格式,MP4/FLV/AVI 等)获取视频格式信息等解复用为Stream 流, 准备解码用的Codec将Stream 流 使用解码器解为Raw 格式针 1.1 音视频格式填充: int…

找不到msvcr110.dll无法继续执行代码的原因分析及解决方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到msvcr110.dll文件。这个错误通常发生在运行某些程序或游戏时,系统无法找到所需的动态链接库文件。为了解决这个问题,下面我将介绍5种常见的解决方法。 一&#…