前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门网络爬虫系列 Chapter02 | 爬取数据之HTTP原理

快速入门网络爬虫系列 Chapter02 | 爬取数据之HTTP原理

作者头像
不温卜火
发布2020-10-28 14:58:13
4610
发布2020-10-28 14:58:13
举报
文章被收录于专栏:不温卜火不温卜火

本片博文介绍HTTP协议相关知识、目标网页的解析、爬虫抓取策略。

1、网页的访问过程

  • 第一步:网络浏览器通过本地或者远程DNS,获取域名对应的IP地址
1
1
  • 第二步:根据获取的IP地址与访问内容封装HTTP请求
2
2
  • 第三步:浏览器发送HTTP请求
3
3
  • 第四步:服务器接收信息,根据HTTP内容寻找web资源
4
4
  • 第五步:服务器创建HTTP请求并封装
  • 第六步:服务器将HTTP响应返回到客户端浏览器
5
5

这时并不是我们普通人看到得视角。

  • 第七步:浏览器解析,渲染服务器返回得资源,显示给用户
6
6

如果想要深入了解网络爬虫的工作原理,我们需要详细了解HTTP请求和响应

2、HTTP

7
7
  • HTTP请求过程
  • HTTP请求
  • HTTP响应
  • HTTP方法
  • HTTP头

HTTP请求的一般步骤:

  • 获取想要访问的URL的IP地址
  • 向Web Server 请求资源
  • Web Server 收到请求,将 响应返回给客户端
8
8

1、网络爬虫主要的操作对象

  • HTTP请求(Request)
9
9

上图表示的是HTTP Request的结构。其中Request Line 包含了请求的方法,如GETPOSTPUTDELETEHEADOPTIONS等所请求的资源,如/doc/test.html,以及客户端所用的HTTP协议版本(0.9、1.0、1.1等),目前浏览器默认采用的都是HTTP1.1版本。 Request Line 之后是一些请求头,表明了请求的主句名称(Host),请求的资源类型(Accept),客户端的身份(User-Agent),可用的压缩方式(Accept-Encoding),消息体的长度(Content-Length)等。请求头后面是一个空行,用来分隔请求头和消息体。空行后面紧接着就是消息体,消息体中可以包含任何内容(文本或二进制)。

  • HTTP响应(Response)
10
10

上图表示的是HTTP Request的结构。可以看出Response和Request的结构是很相似的。Response中的Status Line包含了服务器所使用的HTTP版本(通常会自动与客户端保持一致),状态码(Status Code)和状态描述,如"200 OK","404 Not Found"等。Status Line后面是响应头。表明了服务器的时间(Data),服务器的类型(Server),消息体的类型(Content-Type),消息体长度(Content-Length)等。

2、HTTP请求和响应都由两部分组成

  • 消息头(Message Header) 构成头部
  • 消息头(Message Body) 存放web资源和想要请求的内容

3、GET和POST

HTTP的请求方法有很多,但是在爬虫方面,我们通常使用GETPOST方法。

11
11
12
12

GET和POST的误区:

  • 误区一:POST可以比GET提交更多更长的数据?

由于使用GET方法提交数据时,数据会以&符号作为分隔符的形式,在URL后面添加需要提交的参数,有人就会说了,浏览器地址栏输入的参数是有限的,而POST不用再地址栏输入,所以POST就比GET可以提交更多的数据。难道真的是这样的么? 而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。 同时,POST是没有大小限制的,HTTP协议规范也没有进行大小限制。POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。 总归一句话,这个限制是针对所有HTTP请求的,与GET、POST没有多少关系。

  • 误区二:POST比GET安全?

首先,我们要承认安全的概念有很多种,要是从最基本的肉眼看到就不安全,肉眼看不到那就是安全的概念说呢,GET确实没有POST安全,毕竟小白用户确实可以看到在URL中带有的数据信息,这个你无法狡辩。那么要是往严谨了说呢,POST是不是要比GET安全呢?其实不是的。只能说由于POST方法是将数据放在消息体中,这些数据不会被浏览器存储,所以安全性更好点。

4、HTTP常用协议

13
13
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、网页的访问过程
  • 2、HTTP
    • 1、网络爬虫主要的操作对象
      • 2、HTTP请求和响应都由两部分组成
        • 3、GET和POST
          • 4、HTTP常用协议
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档