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

news2024/11/24 8:04:51

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.coloradmin.cn/o/1690954.html

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

相关文章

Docker-制作镜像的两种方式=》基于容器制作基于Dockerfile制作

本文主要是基于Docker如何制作一个Java镜像,而一个Java镜像想要运行需要系统环境,JDK。所以我们要先有一个系统环境,本文使用的是centos7,JDK选择版本是8,而我使用的Java程序是一个简易的springBoot项目,你…

详细分析Vue按钮间距的优化方式(附Demo)

目录 前言1. 按钮间距2. 垂直间距 前言 正常间距如下&#xff1a; 其Demo如下&#xff1a; <el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"openFor…

Node.js —— 前后端的身份认证 之用 express 实现 JWT 身份认证

JWT的认识 什么是 JWT JWT&#xff08;英文全称&#xff1a;JSON Web Token&#xff09;是目前最流行的跨域认证解决方案。 JWT 的工作原理 总结&#xff1a;用户的信息通过 Token 字符串的形式&#xff0c;保存在客户端浏览器中。服务器通过还原 Token 字符串的形式来认证用…

Mysql注入详细讲解

特殊字符 0x3a:0x7e~0x23# 注入基础 联合查询注入(union) :::tips 页面将SQL查询内容显示出来&#xff0c;即为有回显&#xff0c;可以尝试联合查询注入 利用关键字union &#xff0c;union all 拼接恶意SQL语句 ::: 注入流程 有报错&#xff0c;可以利用报错。如&#xff…

[datawhale202405]从零手搓大模型实战:TinyAgent

结论速递 TinyAgent项目实现了一个简单的Agent智能体&#xff0c;主要是实现了ReAct策略&#xff08;推理调用工具的能力&#xff09;&#xff0c;及封装了一个Tool。 项目实现有一定的疏漏。为了正确运行代码&#xff0c;本次对代码Agent部分进行了简单修改&#xff08;完善…

VBA语言専攻每周通知20240524

通知20240524 各位学员∶本周MF系列VBA技术资料增加611-615讲&#xff0c;T3学员看到通知后请免费领取,领取时间5月24日晚上18:00-5月26日晚上18:00。本次增加内容&#xff1a; MF611:用InputBox录入日期 MF612:信息提示10秒后关自动关闭 MF613:只是信息提示10秒 MF614:显…

Zynq-Linux移植学习笔记之68- 国产ZYNQ添加用户自定义版本信息

1、背景介绍 在使用复旦微zynq时&#xff0c;有时候虽然针对uboot源码进行了改动&#xff0c;但由于uboot基线版本只有一个&#xff08;2018-07-fmsh&#xff09;&#xff0c;导致无法区分版本信息&#xff0c;虽然可以通过编译时间来区分&#xff0c;但没有版本号直观。内核也…

【Numpy】深入解析numpy中的ravel方法

NumPy中的ravel方法&#xff1a;一维化数组的艺术 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简…

香港服务器负载过高的原因和应对办法

保持网站正常运行看似简单&#xff0c;但事实上&#xff0c;有许多问题会影响网站和应用程序的性能&#xff0c;并可能导致停机。其中一个问题就是服务器过载。而香港服务器作为一种常见的服务器类型&#xff0c;有时会出现负载过高的情况。为了帮助您确保在香港服务器过载不会…

AI应用案例:电能量异常分析智能诊断系统

窃电和计量装置故障造成漏收、少收电费使电力系统利益受损。一般情况主要通过定期巡检、定期校验电表、用户举报窃电等手段来发现窃电或计量装置故障。对人的依赖性太强&#xff0c;抓窃查漏的目标不明确。利用电力系统中逐步积累下来的海量真实数据&#xff0c;采用数据挖掘技…

C++多生产者,多消费者模型

C11实现多生产者&#xff0c;多消费者模型 在C标准库中实现多生产者多消费者模型&#xff0c;可以使用std::thread、std::queue、互斥锁(std::mutex)、条件变量(std::condition_variable)等组件。下面是一个简单的示例&#xff0c;展示如何创建多生产者和多消费者模型&#xf…

构建智能化的语言培训教育技术架构:挑战与机遇

随着全球化的发展和人们对语言学习需求的增长&#xff0c;语言培训教育行业正面临着越来越多的挑战和机遇。在这个背景下&#xff0c;构建智能化的语言培训教育技术架构成为提升服务质量和效率的重要手段。本文将探讨语言培训教育行业的技术架构设计与实践。 一、智能化教学平台…

Jupyter Notebook的三个使用场景:网页端、PyCharm专业版和VScode

说明&#xff0c;以下都是我个人的摸索感悟和总结&#xff0c;自己理解和猜测的是这样&#xff0c;欢迎指正。 Jupyter Notebook的三个常用使用地方&#xff08;网页端、PyCharm专业版、VScode&#xff09;&#xff1a; 总结一句话&#xff1a;网页端、PyCharm中和VScode中三…

Python使用multiprocessing实现多进程

大家好&#xff0c;当我们工作中涉及到处理大量数据、并行计算或并发任务时&#xff0c;Python的multiprocessing模块是一个强大而实用的工具。通过它&#xff0c;我们可以轻松地利用多核处理器的优势&#xff0c;将任务分配给多个进程并同时执行&#xff0c;从而提高程序的性能…

ROCm上情感分析:使用循环神经网络

15.2. 情感分析&#xff1a;使用循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)class BiRNN(nn.Module):…

躺赚零撸项目,看广告赚红包,零门槛提现,秒到账,单机每日100+

这个项目是跟广告商直接对接的&#xff0c;跟以前小游戏看广告差不多&#xff0c;看完广告得金币5000个兑换5毛钱。 不过这个是可以直接提现&#xff0c;而是无门槛就可以提&#xff0c;有设备就可以操作&#xff0c;有空边看连续剧边刷也是挺香的&#xff0c;单机可以达到100…

组网智能是啥?

组网智能是一种基于穿透技术的远程连接解决方案&#xff0c;它为用户提供了操作简单、跨平台应用、无网络要求和独创的安全加速方案等优势。由于这些特点&#xff0c;组网智能已经被几十万用户广泛应用&#xff0c;解决了各行业客户的远程连接需求。 跨平台应用 组网智能具备跨…

《我的阿勒泰》观后感(二、返璞归真也是一种美)

看了李娟的小说《我的阿勒泰》逐渐悟到一个道理&#xff0c;返璞归真也是一种美&#xff0c;没必要每个人的人生三十年的年华&#xff0c;都去追求房子&#xff0c;车子等逐渐贬值的东西。人究竟应该追求怎样的一种活法&#xff1f; 什么是城市化&#xff1f;这是我听到的最好…

ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

这个是使用metrtc的库为ffmpeg添加webrtc传输协议&#xff0c;目前国内还有一个这样的开源项目&#xff0c;是杨成立大佬&#xff0c;大师兄他们在做&#xff0c;不过wili页面维护的不好&#xff0c;新手不知道如何使用&#xff0c;我专门对它做过介绍&#xff0c;另一篇博文&a…

Ansible01-Ansible的概述、实验环境初始化、Inventory

目录 写在前面1. Ansible是什么1.1 简介与来历1.2 Ansible的特点1.3Ansible的架构与工作流程1.3.1 ansible 任务执行模式1.3.2 ansible 执行流程1.4 Ansible的模块 2. Ansible实验初始化2.1 实验环境2.2Ansible的安装2.2.1 Ansible的程序结构 2.3 修改Ansible配置文件2.3.1 配置…