什么是HTTP?
超文本传输协议,专门用于Web通信
安全、加密
- http: 普通http协议,不安全,已在逐步替代
- https: 安全(security)http协议,RSA非对称加密,理论上无可接受的破解方案
版本
- http1.0:早期的版本,已废弃
- http1.1:现行http版本,具有持久连接特性
- http2.0:最新的http版本,尚未普及,具有多路复用、优先级、推送等高级特性
理解HTTP
通信过程
注:消息(HTTP Message),其他叫法——报文、实体、数据、帧
消息结构
请求方法(method)
最常见的两种请求方法:
方法 | 说明 | 特点 |
---|---|---|
GET | 常用于服务器获取数据 | 请求数据在URL中(Header中) 1、传输数据量小 2、支持缓存 |
POST | 常用于服务器发送数据 | 请求数据在Body中 1、传输数据量大 2、不支持缓存 |
其他不同的方法:
方法 | 说明 |
---|---|
PUT | 类似于POST,更倾向于发文件类的数据 |
HEAD | 类似于GET,但服务器只返回头部,无内容,常用于服务器是否在线 |
OPTIONS | 类似于HEAD,对服务器进行一些配置 |
DELETE | 要求服务器删除某个数据 |
状态码(HTTP status code)
用于响应数据,服务器对请求的处理状态
常见状态码
状态码 | 含义 |
---|---|
200 OK | 成功,但数据不一定正确 |
404 Not Found | 请求的对象没找到 |
500 Internal Server Error | 服务器内部错误(没有说明具体说明错误) |
503 Service Unvaliable | 服务器暂时不可用,或资源不足以处理请求 |
状态码 | 类型 | 解释 |
---|---|---|
1xx | 消息 | 只是个消息,不需要特意处理 |
2xx | 成功 | 各种各样的成功,但数据不一定正确 |
3xx | 重定向 | 请求的资源需要从另一个地址获得 |
4xx | 客户端错误 | 客户端的请求有问题 |
5xx | 服务端错误 | 服务端的处理有问题 |
其他 | 自定义状态码 | HTTP状态码支持自定义,但一般用不着 |
实战:解析http请求
重要的头
名称 | 含义 |
---|---|
Cookie | 在客户端存储的一些数据(上限4k)(浏览器和服务器共享) |
Referer | 由哪个资源引用了本资源 |
User-Agent | 用户代理(浏览器的名称) |
后续内容详见爬虫有关博客,以上仅为对于HTTP的初步了解。