python 爬虫基础(一)

HTTP基本原理

1.URL和URI的关系

URI全称为Uniform Resource Identifier,即统一资源标志符。URL的全称为Universal Resource Locator,即统一资源定位符。简单来说,URL是URI的一个子集,即URL一定是URI,而URI不一定是URL。URI还包括一个子集URN。当下互联网中,URN用得非常少,以URL为主,一般的网页链接均为URL。

2.超文本

参见什么是超文本?

3.HTTP和HTTPS

HTTPS 是在HTTP协议基础上加入了SSL层,因此称为HTTPS。TLS协议是在SSL3.0的版本基础上发展起来的。ssl/tls主要提供3个功能:

  • 用户身份校验功能
  • 数据加密功能
  • 数据完整性验证功能

HTTP和HTTPS 均为应用层协议,传输层协议任为TCP协议。
可以理解如下:
HTTP协议运行于TCP协议之上,HTTPS=HTTP+SSL/TLS。

4.HTTP 请求过程

浏览器输入URL到页面展示的过程
参考【HTTP】 在浏览器输入url后的流程
整个流程大致如下:

  • DNS域名解析
  • TCP连接
  • HTTP请求
  • 处理请求返回HTTP响应
  • 页面渲染
    • 生成dom树
    • 生成css规则树
    • 生成渲染树
    • 绘制
    • 显示
  • 关闭连接

5.HTTP请求

5.1 HTTP方法

HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式:

方法描述
GET请求页面,返回内容,参数包含在URL内,提交数据大小有限制,大小因浏览器以及服务器的不同而不同,一般在几kb之内
POST大多用于提交表单或上传文件,数据包含在请求体中,提交数据大小没有限制
HEAD类似于GET请求,不过返回的响应中没有具体内容,主要用于获取报头
PUT从客户端向服务器传送数据取代知道文档中的内容
DELETE请求服务器删除指定页面
CONNECT把服务器当做跳板,让服务器代替客户端访问其他网页
OPTIONS允许客户端查看服务器性能,在axios中,被用作跨域处理方案的一部分
TRACE回显服务器收到的请求,主要用于测试或诊断

实际工作中,最常用的是GET和POST

5.2HTTP请求头

HTTP请求头常用来说明服务器需要的附加信息,场景的如下

  • Accept: 请求报文头域,用于指定客户端可以接受哪些类型的信息。
  • Accept-Language:指定客户端可以接受的语言类型。
  • Accept-Encoding:指定客户端可以接受的内容编码。
  • Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的地址。HTTP1.1开始,请求必须包含该内容。
  • Cookie:也常用复数Cookies,是服务器端为了辨识用户进行绘画跟踪而存储在用户本地的数据,主要功能是为了卫视当前访问会话。每次浏览器请求服务器站点页面时,都会在请求头中加上Cookies,发送给服务器,服务器通过Cookies辨识用户以及用户状态(登录等)。
  • Referer: 此内容用于标记这个请求是从哪个页面发过来的,服务器可以拿到该信息并做相应处理,如防盗链等。
  • User-Agent:简称UA,是一个特殊的字符串,可以使服务器识别客户使用的操作系统及版本,浏览器及版本等。做爬虫时加上此信息,可以伪装为浏览器。
  • Content-Type:也叫互联网媒体类型或者MIME类型,在HTTP协议请求头中,用来表示具体请求中的媒体类型信息。

5.3 HTTP请求响应头

  • Date:标识响应产生的时间。
  • Last-Modifed:指定资源的最后修改时间。
  • Content-Encoding:指定响应内容的编码。
  • Server:包含服务器的信息,比如名称、版本号等。
  • Content-Type:文档类型,指定返回的数据类型是什么,如text/html代表返回HTML文档。
  • Set-Cookie:设置Cookies。响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求
  • Expires:指定响应的过期时间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值