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


    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,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别为爬虫
  • 相关阅读:
    Can We Edit Multimodal Large Language Models?
    7、【Qlib】【主要组件】Data Layer:数据框架与使用
    PX4使用P900数传
    深入理解Spring事件机制(一):广播器与监听器的初始化
    Day2:字符串变量,强制类型转化,运算符
    工程建设行业智能供应链系统:优化产业链运作效率,实现全链路数字化建设
    网络原理(Java网络编程)
    java - 寻找一个值的二分查找、寻找左/侧边界的二分查找总结
    Spring Cloud学习:如何实现Gateway 服务网关限流
    Qt 自定义主题颜色,颜色选择器
  • 原文地址:https://blog.csdn.net/hsadfdsahfdsgfds/article/details/139113180