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

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

码农世界 2024-05-28 后端 79 次浏览 0个评论

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

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

        2.HTTP 和 HTTPS 的区别

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

        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.请求过程

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

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

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

            其中各列的含义如下:

            • 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:网络请求的可视化瀑布流。

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

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

              通用头 (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基本原理》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,79人围观)参与讨论

还没有评论,来说两句吧...

Top