http协议
HTTP:(Hyper Text Transfer Protocol)超文本传输协议
---用于从万维网服务器传输超文本到本地浏览器的传送协议
---基于TCP的应用层协议,主要规定客户端和服务端的数据传输格式
---基于请求与响应模式的,无状态的,应用层的协议
HTTP的几种请求命令
GET | 从服务器向客户端发送命令资源 |
PUT | 将来自客户端的数据存储到一个命名的服务器资源中去 |
DELETE | 从服务器中删除命名资源 |
POST | 将客户端数据发送到一个服务器网关应用程序 |
HEAD | 仅发送命名资源响应中的HTTP首部HTTP的状态码(3位数字的代码) |
200 | OK,文档返回正确 |
302 | Redirect,重定向。到其他地方去获取资源 |
404 | Not found,没找见。无法获取这个资源 |
HTTP报文
---由一行一行的简单字符串组成的,都是纯报文,不是二进制代码,所以可以很方便的对其进行读写
---请求报文
---响应报文q
HTTP客户端请求---请求报文
---在HTTP连接建立以后,客户端首先发起一个请求:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: curl/7.43.0
(空行)
---这个请求由3部分构成:
- 首行是一个请求行(Request Line)
- 接着是若干Header,一个一行
- 一个空行表示请求结束
##请求行(Request Line)
请求行有特定的格式:
Request-Line = Method SP Request-URI SP HTTP-Version CRLF(Method-http方法,决定了服务器将如何对所请求的资源进行操作。Request URI代表着服务器上的某种资源。它可以是一个文件,也可以是其他任何东西(比如服务器的当前时间),由服务器决定如何解读。)
以上:SP代表一个空格符,CRLF代表回车和换行符。对于
GET /index.html HTTP/1.1来说,则有:
Method = GET
Request-URI = /index.html
HTTP-Version = HTTP/1.1
##请求头(Request Header):向服务器提供请求的参数,以及客户端自身的一些信息等等
常用头字段:
---请求头字段:请求头中的头字段,如:Host、Referer
---响应头字段:响应头中的头字段,如:Server、Date
---通用字段:在请求头和响应头里都可以出现,如Content-type、connection
注意事项:
---字段不区分大小写,不能出现空格,不能出现下划线
---字段的顺序是没有意义的,可以任意排列
---字段原则上不能重复,除非这个字段本身的语义允许
HTTP请求的完整过程:
https协议
SSL/TSL:安全套接层---数据加密
应用到的加密算法:
摘要算法:MD5、sha1、sha2、sha1 256
对称加密算法:异或运算
非对称加密算法
传输过程: