HTTP和HTTPS复习内容
内容概述
- HTTP和HTTPS概述
- HTTP的请求过程
- HTTP的请求形式
- HTTP的常见请求头
- GET和POST
- 响应状态码
HTTP和HTTPS概述
-
HTTP和HTTPS在爬虫中的位置
-
HTTP概述
-
HTTP
- 超文本传输协议
- 默认端口号:80
-
HTTPS
- HTTP + SSL(安全套接字层)
- 默认端口号:443
-
对比:
- HTTPS比HTTP更安全,但是性能更低
URL
URL: 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
URL的格式
- 格式: scheme://host[:port#]/path/…/[?query-string][#anchor]
- scheme:协议(例如:http, https, ftp)
- host:服务器的IP地址或者域名
- port:服务器的端口(如果是走协议默认端口,80[http]or443[https]可以省略)
- path:访问资源的路径
- query-string:参数,发送给http服务器的数据
- anchor:锚(跳转到网页的指定锚点位置)
浏览器发送HTTP请求的过程
注意:
- 浏览器渲染出来的页面和爬虫请求的页面 并不完全一样
- 原因: 因为浏览器在进行渲染时候, 会自动加载css,js,图片等数据.
HTTP请求报文的格式
- Http请求报文分为三部分:
- 1.请求行
- 2.请求头: 通常是告知服务器的关于本客户端的信息
- 3.请求体: post请求数据存放位置
常见的请求方法
-
GET
: 请求用于获取数据, 请求参数都在URL上, 不安全, 数据大小有限制 -
POST
: 用于提交数据, 提交数据请求体中, 相对比较安全 -
问题:GET方法和POST方法有什么区别呢?
-
Get方法
- 用来获取服务器的资源
- 在url中传输获取数据的参数信息
- 传输的数据量小(2KB-7KB)
-
Post方法
- 用来把数据传输给服务器(本质上更专业)
- 在请求体中传输给数据的数据
- 传输的数据量大(HTTP协议没有限制)
-
HTTP常见请求头
- Host: 主机和端口号
- Connection: 链接类型
- Upgrade-Insercure-Requests(升级为HTTPS的请求)
- User-Agent: 浏览器名称(重点)
- Accept: 接收的文件类型
- Referer: 从哪个页面跳转过来的, 用于做防盗链
- Accept-Encoding: 接收文件的压缩格式
- Cookie: Cookie
- X-Requested-With: XMLHttpRequest 是Ajax异步请求
响应状态码(status code)
- 200:成功
- 302:临时转移至新的url
- 307:临时转移至新的url
- 403: 没有权限
- 404:not found
-
500:服务器内部错误
-
注意: 在爬虫中状态码不可信, 如果在浏览器中正常, 而爬虫中不正常, 说明你程序被识别为了爬虫, 你需要做一些反
反爬虫
的处理, 比如: 指定User-Agent, Refere, Cookie, 降低请求速度, 降低请求次数, 使用代理等.