1.HTTP
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是万维网服务器将超文本传输到本地浏览器的传送协议,基于TCP/IP通信协议来传送数据。
-
HTTP请求报文
HTTP请求报文由4部分组成。分别是请求行、请求头、空行和请求正文。
请求行:由请求方法、URL和HTTP版本组成,使用空格进行分隔。
POST请求比GET请求多一行Content-type。
常见的请求方法有八种(实际不止8种,常用的是以下几种),具体如下表。
方法 | 描述 |
GET | 请求页面,并返回页面内容 |
POST | 一包包含表单数据,数据被包含在请求体中 |
PUT | 客户端向服务器发送数据,取代指定文档内容 |
DELETE | 请求服务器删除指定页面 |
CONNECT | 预留给能后将连接改为管道方式的代理服务器 |
HEAD | 和GET请求类似,但返回响应无具体内容,一般用于获取报头 |
OPTIONS | 允许客户端查看服务器性能 |
TRACE | 回显服务器收到的请求,用于测试或诊断 |
请求头:采用键值对形式,中间用冒号分隔。
Host:请求主机域名/ip地址
User-Agent:告诉服务器浏览器的版本信息,供服务器解决浏览器兼容问题。
Accept:传输文件类型
Referer:告诉服务器从哪里来
referer有两个功能:
- 服务器用来统计网站来源
- 防盗链(防止其他私人网站直接跳转本网站)
Cookie:储存在用户本地终端上的数据(具体关于cookie的描述可参考另一篇博客:cookie和session的含义和区别_shen_xian_的博客-优快云博客)
空行:请求头最后会有一个空行,代表请求头结束,接下来是请求正文。
请求正文:一般是post请求中提交的表单数据。
-
HTTP响应报文
HTTP响应报文由四部分组成,分别是状态行,响应头,空行和响应正文。
状态行:由协议版本,状态码,状态码描述组成,用空格进行分隔。
1XX:请求已接收,继续处理。
2XX:成功。
3XX:重定向,请求需要进行进一步操作。
4XX:客户端错误,请求由语法操作或请求无法实现。
5XX:服务器端错误。
响应头:包含服务器对请求的应答信息。
空行:响应头最后会有一个空行,表示响应头结束。
响应正文:Content-Type指定响应正文的Mime类型。
2.HTTPS
HTTPS(Hyper Text Transfer Protocol over Secure Socket Laye,安全超文本传输协议),HTTP是应用层协议,TCP是传输层协议,HTTPS是在这两层之间添加了一个安全套接层SSL/TLS。HTTPS可以理解为HTTP的安全版。
一些常用的名词:
对称加密:加密密钥和解密密钥是一样的。
非对称加密:加密用的公钥和解密用的私钥不一样,公钥加密过的数据只能通过私钥解开,私钥加密过的数据只能通过公钥解开。
公钥:公开的密钥,所有人都能查到。
私钥:非公开的密钥,一般由网站管理员持有。
证书:网站的身份证,包含很多信息,包括公钥。
CA:证书颁发机构。