ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【0基础学爬虫】爬虫基础之HTTP协议的基本原理介绍 [打印本页]

作者: 南飓风    时间: 2023-2-22 17:40
标题: 【0基础学爬虫】爬虫基础之HTTP协议的基本原理介绍

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为 HTTP 协议的基本原理介绍。
计算机网络模型

计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题,除了标准的 OSI 七层模型以外,常见的网络层次划分还有 TCP/IP 四层协议以及 TCP/IP 五层协议,它们之间的对应关系如下图所示:


HTTP 发展史


HTTP 协议和 HTTPS 协议

HTTP(Hypertext Transfer Protocol)中文名为超文本传输协议,其作用是把超文本数据从网络传输到本地浏览器,能够高效而准确地传输超文本文档。HTTP 是由万维网协会(World Wide Web Consortium)和 Internet 工作小组 IETF(Interner Engineering Task Force)合作制定的规范,目前被广泛使用的是 HTTP 1.1 版本,如今也有不少网站支持 HTTP 2.0 版本。
HTTP 协议的特点:

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)是一种通过计算机网络进行安全通信的传输协议,经由 HTTP 进行通信,利用 SSL/TLS 建立全信道,加密数据包,HTTPS 使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性,相当于 HTTP 协议的安全版。
HTTPS 协议的特点:
时势发展:
HTTP 和 HTTPS 的区别主要如下:
上述 HTTPS 看起来是加强版的 HTTP,可圈可点,但并不是完美无缺的:
HTTP 请求过程

HTTP 由请求和响应构成,是一个标准的客户端服务器模型(B/S),HTTP 协议永远都是客户端发起请求,服务器回送响应,HTTP 是一个无状态的协议,无状态是指客户机(Web 浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息,HTTP 遵循请求(Request)/应答(Response)模型,客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答,所有 HTTP 连接都被构造成一套请求和应答。
HTTP 请求/响应的步骤:
步骤简述:
HTTP 请求/响应模型:

通俗点讲就是在浏览器地址栏输入一个 URL,按下回车之后便可观察到对应的页面内容,实际上,这个过程是浏览器先向网站所在的服务器发送一个请求,网站服务器接收到请求后对其进行处理和解析,然后返回对应的响应,接着传回浏览器,由于响应里包含页面的源代码等内容,所以浏览器在对其进行解析,便将网页呈现出来。
HTTP 请求方法

HTTP/1.1 协议中共定义了八种方法(有时也叫“动作”),来表明 Request-URL 指定的资源不同的操作方式,HTTP1.0 定义了三种请求方法:GET,POST 和 HEAD 方法,HTTP1.1 新增的五种请求方法:OPTIONS,PUT,DELETE,TRACE 和 CONNECT 方法:
最为常见的请求方法是 GET 和 POST,在浏览器地址栏输入一个 URL,按下回车,即发起了一个 GET 请求,请求的参数会直接包含到 URL 里;POST 请求大多在提交表单时发起,例如登录,输入用户名和密码,点击登录即发起一个 POST 请求,其数据通常以表单的形式传输,而不会体现在 URL 中,GET 和 POST 请求方法区别如下:

HTTP 请求头

HTTP 请求头(HTTP Request Header)提供了关于请求,响应或者其他的发送实体的信息,HTTP 的头信息包括通用头、请求头、响应头和实体头四个部分:

每个头域由一个域名,冒号(:)和域值三部分组成,常用的 HTTP 请求头如下:
HTTP 响应头

HTTP 响应头(HTTP Responses Header)中包含了服务器对请求的应答信息,HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文:

常用的 HTTP 响应头如下:
HTTP 响应状态码


**1xx:**该状态码表示临时响应并需要请求者继续执行操作
**2xx:**该状态码表示成功
**3xx:**该状态码表示要完成请求,需要进一步操作,通常这些状态码用来重定向
**4xx:**表示请求可能出错,妨碍了服务器的处理
**5xx:**表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身的错误,并不是请求出错,当然也有可能是请求者的故意为之,使服务器本身出现错误

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4