最详细爬虫零基础教程02——http协议和请求头的介绍

文章目录


复习

在本节开始讲述的时候,我们先来复习一下爬虫的基本步骤:


一、http和https协议

HTTP协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。

工作原理:客户端发送请求给服务器,服务器接收并处理请求,并返回相应的响应给客户端。请求和响应都包含一个首部和一个可选的消息体。首部包含了请求或响应的元数据,消息体包含了实际的数据。

HTTP协议使用TCP/IP作为传输协议,通常使用80端口。它支持多种请求方法,包括GET、POST、PUT、DELETE等,每个方法都有不同的语义和用途。

HTTP协议也支持状态码来表示请求的处理结果,常见的状态码包括200表示成功,404表示未找到资源,500表示服务器内部错误等。

除了传输超文本外,HTTP协议还可以传输其他类型的内容,如图片、音频、视频等。在传输时,可以使用压缩、缓存、加密等技术来提高传输效率和安全性。

备注:上面提到的一些基本概念会在后面陆续讲解到,不懂的话可以先放着,我们后面通过实例来进行了解。

http和https的区别

HTTP

  • 超文本传输协议
  • 默认端口号:80

HTTPS

  • HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
  • 默认端口号:443

HTTPS比HTTP更安全,但是性能更低

二、网络请求的过程

1.浏览器发送http请求的过程

  • 浏览器先向地址栏中的url发起请求,并获取相应

  • 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应

  • 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应

  • 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改------------这个过程叫做浏览器的渲染

http请求的形式

注意:在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等),浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

2.DNS服务器

定义:DNS服务器(Domain Name System Server)是一种用于解析域名和IP地址之间映射关系的服务器。它将人类可读的域名转换为计算机可理解的IP地址,以便在互联网上进行通信。

工作原理

  • 当用户在浏览器中输入一个域名时,浏览器需要通过DNS服务器来获取对应的IP地址,然后才能与该网站建立连接。DNS服务器负责将域名解析为IP地址,并将解析结果返回给用户的设备。

  • DNS服务器通过一种分布式的、层级化的系统来工作。它们组成了一个大的网络,每个DNS服务器都存储着一部分域名和对应的IP地址。当一个DNS服务器无法解析某个域名时,它会向上一级的DNS服务器发送请求,直到找到能够解析的DNS服务器为止。

作用

1.DNS根据域名解析出对应的IP地址

2.返回IP地址给本机电脑

3.使用IP地址去百度首页的服务器(仓库)

4.返回给客户端相应的数

除了域名解析外,DNS服务器还可以提供其他功能,如记录域名的邮件服务器、将一个域名重定向到另一个域名等。

总而言之,DNS服务器是用于解析域名和IP地址之间映射关系的服务器,它将域名转换为IP地址以便进行互联网通信。它通过分布式、层级化的系统工作,并可以缓存解析结果以提高效率。

三、Headers参数介绍

定义:Headers(头部)是HTTP协议中的一部分,用于在HTTP请求和响应中传递元数据信息。Headers以键值对的形式出现,每个键值对由冒号分隔,键值对之间用换行符分隔。在HTTP请求中,Headers包含了客户端(浏览器或其他客户端应用)向服务器发送的信息,如请求的方法、URI、支持的压缩算法、用户代理信息等。

那么我们如何找到Headers,查看客户端和服务器的交流过程呢?(重点)

1.打开你想要搜索的网址页面(这里我以百度网页进行展示,输入www.baidu.com进入百度首页。

2.点击F12或者鼠标右键点击检查,调出开发者工具

![如何寻找请求头](https://img-blog.csdnimg.cn/direct/81c6fecdc10c4b4c91845b308641aee4.png![在这里插入图片描述](https://file.jishuzhan.net/article/1769001477868621825/51bf9a69f352a507648329ad81e1855b.webp)

3.上述操作完成之后你就会得到以下页面

4.之后我们随便点开左侧的一个数据包,我们就可以寻找到Headers

常用参数介绍:

1. General:表示整体信息的描述

  • Request url:该数据包的域名
  • Request method:请求的方法 (GET POST)
  • status Code:200 OK(状态码 301.302 代表跳转 404 代表没有访问成功 5开头的表示对象服务器出现问题 200成功)
  • Remote Address:183.2.172.42:443(表示IP地址)

2. Response Headers:(响应头,响应信息):服务器需要遵循这种规则协议,浏览器才能解析出来,并且展示

  • Content-Type:text/html; charset=utf-8(表示响应的内容是text、HTML格式,编码格式为utf-8)
  • Set-Cookie:用于在响应中设置cookie。服务器可以通过此参数向浏览器发送cookie,以便在后续请求中进行身份验证或跟踪用户状态。
    3. Request Headers:请求头(重点)
  • Accept:指定客户端能够接受的响应内容类型。可以使用MIME类型或通配符。例如,Accept: application/json表示客户端希望接收JSON格式的响应。
  • Accept-Encoding:gzip, deflate, br,浏览器可接受的编码格式
  • Accept-Language:zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6(浏览器可接受的编码语言)
  • Cookie(重点):记录会话信息,记录和服务器的交流信息 包括用户名,身份信息(下次访问就不用填写账号信息),用于在服务器上跟踪用户的会话状态。 cookie是反爬的重点。
  • Host:www.baidu.com(指定服务器的主机名和端口号)
  • User-Agent:指定发送请求的用户代理信息。通常包含浏览器名称和版本号。

总结

前面的概念知识有点繁琐,但是这是爬虫必不可少的基础,坚持就是胜利,相信自己。

每个梦想,都是在现实中坚持不懈才实现的。

相关推荐
好看资源平台23 分钟前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
刽子手发艺2 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
速盾cdn6 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
Tech Synapse14 小时前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
数据小爬虫@15 小时前
利用Python爬虫获取淘宝店铺详情
开发语言·爬虫·python
Lws16 小时前
CS144 lab0(个人理解)
网络协议
C++忠实粉丝20 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp
添砖java_85720 小时前
UDP数据报套接字编程
网络·网络协议·udp
B站计算机毕业设计超人21 小时前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法