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

标题: Python!从0开始学爬虫:(一)HTTP协议 及 请求与响应 [打印本页]

作者: 千千梦丶琪    时间: 2025-1-26 09:22
标题: Python!从0开始学爬虫:(一)HTTP协议 及 请求与响应
前言
爬虫须要底子知识,HTTP协议只是个开始,除此之外另有许多,我们慢慢来记录。
今天的HTTP协议,会有助于我们更好的相识网络。
一、什么是HTTP协议

(1)定义

HTTP(超文本传输协议,HyperText Transfer Protocol)是用于在网络上进行数据通信的协议,尤其是用于网页的传输。
   简单来说,就是专门把超文本数据从网络上传输到本地欣赏器上的一个协议
  我们也经常见它,比如网站前面的前缀:

当然,上图有些不太精确,但 HTTPS 实在是HTTP的升级版,二者实在差不太多。
(2)HTTPS

那么HTTPS到底有什么差别呢?
HTTPS的全称是Hypertext Transfer Protocol Secure。相较于HTTP多了一个Secure
所以我们应该知道,哪里升级了。
   简单来说,就是在HTTP的底子上通过传输加密和身份认证保证了传输过程的安全性
  Tips:HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处置惩罚加密信息的模块。服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。(相识即可)
(3)URI和URL

另有些专业术语,诸如URI和URL :

顾名思义,URI让我们可以唯一标识一个资源。URL则让我们可以去定位一个资源。
比如一个网址https://www.example.com
我们可以把这整个链接叫做URI,因为这个网址标识了一个资源。
而这个链接,也叫做URL,因为这个网址的链接也同样定位了一个资源。
那他们怎么区分呢? 
URI包罗了URL,因为URI=URL和URN。
比如,一本书的编号111,这个编号就是URN。
所以该编号也可以叫做URI,因为它同样标识了一个资源,但是它不能叫做URL了,因为该编号并没有定位这个资源,我们只知道它叫什么,却不知道去哪里可以找到他。
二、HTTP请求过程

(1)请求过程

我们在网页最上面的导航栏上输入网址,按下回车,然后出现一个新网页。
这个过程就是欣赏器向某网站发送了一个请求,然后网站进行处置惩罚,末了网站回馈一个响应,欣赏器分析后展现出来。
(2)相关名词介绍

(注:以下名词相识即可) 
为了更好的阐明该过程,我们可以鼠标右键查抄功能来详细体现一下请求和响应:

然后切换到Network面板,再刷新一下网页:

即可看到许多行的东西,每一行就代表一次  请求-响应  过程
我们细致观察这个界面的各列:

其中,各列含义如下

若单击某列,则会体现更详细的信息:

在General部分:

   以上名词可能有些说的不太清楚,现在我们详细来看一看各部分,到底是干什么的
  三、请求部分

请求,即Request。
由用户发往服务器的信息。包罗四大部分:请求方法、请求网址、请求头、请求体。 
(1)请求方法

   请求方法,客户端请求服务器时的方式
  常见的有两种:GET请求、POST请求
比如:
GET请求
请求获取指定资源,如请求页面返回内容
当我们在欣赏器最上面输入网址并按下回车,这就是发起了GET请求。
POST请求:
向指定资源提交数据,通常用于表单提交或者上传文件。
当我们登陆网站,输入账号密码后,点击提交后,这就是发起了POST请求。
   那么二者有什么详细区别呢?
   所以综上,当我们提交账号密码时,最好选择POST,否则GET会将密码体现在网址中袒露哦~


当然除此之外,另有许多请求,不外并不常用,汇总如下:


(2)请求网址

网址格式如下:
   
协议://主机名:端口号/路径?查询字符串#片段标识符

  阐明:

举个例子:
https://www.example.com:8080/products/123?id=456&color=red#review
表明: 

(3)请求头

   请求头是 HTTP 请求中的一部分,它包含了关于客户端、请求以及数据的附加信息。
  客户端通过它向服务器通报元数据,资助服务器理解请求的内容、用户的偏好、客户端情况等。
举个例子:
请求头就像你在向别人请求东西时提供的一些附加信息。
假设你在网上买东西,除了告诉商家你想买的产物,还会提供一些其他信息,比如:
你用的是什么装备(是手机还是电脑)
你能接受的商品类型(比如希望商品图片清晰,或者只想看某种品牌的商品)
这些附加信息就像是请求头里的内容,它们资助商家(服务器)相识你详细的需求,确保你能收到最合适的产物。
   所以你要访问一个网页,你的请求头可能包含以下信息:
  (注:相识即可) 
1. Host

2. User-Agent

3. Accept

4. Accept-Language

5. Content-Type

6. Authorization

7. Cookie

8. Accept-Encoding

9. Connection

10. Referer

(4)请求体

   请求体是 HTTP 请求中的一部分,主要用于携带客户端发送给服务器的实际数据内容。
  可以理解为你在向服务器请求某项服务时,所附带的详细信息或者数据。
举个例子:
如果你填写了一个网上表单,提交了你的个人信息(比如名字、地址、电子邮件等),这些信息就是通过请求体发送到服务器的。
(Tips:对于请求体来说,一般是POST请求的表单数据,对于GET请求,请求体为空)

   对于请求头和请求体的区别?
  
四、响应部分

响应,即Response。
由服务器给用户的信息。包罗三部分:响应状态码、响应头、响应体。
(1)响应状态码

   就像前文所说,这就是根据给出的数字,来判定响应是否正常。
  比如,200表示正常、404表示找不到等,都是常见状态码。
下面汇总了常见的状态码及错误原因:
1. 1xx:信息性状态码
这些状态码表示请求已被接收,正在继承处置惩罚。

2. 2xx:乐成状态码
这些状态码表示请求已乐成被处置惩罚。

3. 3xx:重定向状态码
这些状态码表示请求须要进一步的操作才气完成(通常是页面重定向)。

4. 4xx:客户端错误状态码
这些状态码表示请求有错误,客户端须要修正请求后再试。

5. 5xx:服务器错误状态码
这些状态码表示服务器未能完成有效请求,通常是服务器本身的问题。

(2)响应头

   响应头是服务器在响应客户端请求时,附加在响应消息中的一些信息。
  这些信息主要用于描述服务器的处置惩罚结果、返回的数据类型、缓存策略等。
可以理解为服务器对客户端请求的“回馈”信息,告诉客户端服务器的状态、资源类型等。
下面为常用响应头:
(3)响应体

   响应体是服务器在响应客户端请求时,返回给客户端的实际数据内容。
  举个例子:
比如你请求一个网页时,响应体就是返回的 HTML 内容;你请求某个数据接口时,响应体就是返回的 JSON 数据。
如下图所示:

当我们打开Preview中,看到的蓝框内的内容,就是响应体。
在爬虫时,我们要做的,就是分析它!!!
它的常见内容有:



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




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