一、 HTTP 基本原理
1.URI
URI(Uniform Resource Identifier):统一资源定位符,用来唯一指定网络上的一个资源。
2. HTTP 和 HTTPS
HTTP 超文本传输协议,用于从网络传输超文本数据的协议,它能够保证高效而准确的传输超文本文档,目前广泛使用的是HTTP1.1版本。
HTTPS协议,是HTTP协议的安全版本。在HTTP下加入SSL层,简称为HTTPS。
HTTPS的安全基础是SSL,通过它的传输内容都会经过SSL加密。主要功能有以下两点:
- 建立一个安全通道来保证数据传输的安全。
- 确认网站的真实性。因为需要CA机构颁发CA证数。
HTTP工作包括请求和响应两个步骤。
graph LR
客户端-->服务器
服务器-->客户端
3. HTTP请求
请求由客户端向服务器端发出,分为四个部分:
- 请求方法(Request Method)
- 请求网址(Request URL)
- 请求头(Request Header)
- 请求体(Request Body)
(1) 请求方法
方法 | 描述 |
---|---|
GET | 请求页面,返回页面内容。是向服务器要数据的 |
HEAD | 类似GET请求,只是返回的只有Header中的内容 |
POST | 用于向服务器发送数据 |
PUT | 用于对服务器的数据进行修改 |
DELETE | 删除服务器上指定内容 |
CONNECT | 将服务器作为跳板,访问其他服务器页面 |
OPTIONS | 请求web服务器告知其支持的各种功能 |
(2) 请求网址
唯一的标识了我们想请求的资源。
(3) 请求头
请求头里存放了服务器使用的附加信息,例如Cookie、User-Agent等。下面是常见信息:
- Accept:用于指定客户端可以接收哪些类型的信息。
- Accept-Lanaguage:客户端可以接收的语言类型。
- Accept-Encoding:指定客户端可接受的内容编码。
- Host:指定请求资源的主机IP和端口号。
- Cookie:存储在本地的数据。
- Referer:用来标识请求是从哪个页面发过来的。
- User-Agent:用来使服务器端识别客户端使用的操作系统、浏览器等。
- Content-Type:表示请求中的媒体类型信息。常见的content-type类型:
- application/x-www-form-urlencoded:表单数据
- multipart/form-data:文件上传
- application/json:序列化的JSON数据
- text/xml:xml数据。
(4) 请求体
一般放的是post的请求数据。对于get请求,请求体为空。
注意:Get请求每次提交的数据,最多只能有1024字节。
4. HTTP响应
响应由服务器端返回给客户端,分为三个部分:
- 响应状态码(Status Code)
- 响应头(Response Header)
- 响应体(Response Body)
(1) 响应状态码
代表服务器处理请求的状态。
例如:200代表成功,302代表重定向,404代表未找到服务,500代表服务器端异常。
(2) 响应头
包含了服务器对请求的响应信息。
- Date:响应产生的时间
- Last-Modified: 指定资源的最后修改时间。
- Content-Encoding:指定响应内容的编码。
- Server:包含的服务器信息。
- Content-Type:返回的文档类型。
- Set-Cookie:设置cookie。告诉浏览器要将此信息存储在cookie中。
- Expires:设置响应的过期时间。可以使浏览器将内容存放在缓存中。
二、爬虫的基本原理
1.爬虫的步骤:
简单的说,爬虫就是获取网页并提取和保存程序的自动化程序。
主要包括以下步骤:
graph LR
抓取网页-->提取信息
提取信息-->保存数据
保存数据-->自动化
2.数据类型
爬取的数据类型包括:文本、JSON、二进制文件(文件、图片、音乐)等。
3.爬取网页类型
大体上爬取的网页分为以下两种类型:
- 静态网页
- 取由JS动态渲染的内容
4.常见操作
- 保持会话操作,以便爬取需要登录的信息。
- 使用代理,避免IP被封问题。
网友评论