HTTP协议
-
什么是HTTP协议?
个人理解:HTTP协议就是TCP传输数据的过程中,数据格式的一种规范。
-
HTTP协议的作用?
个人理解:HTTP极大的解决了早期网络刚诞生是用户获取数据步骤繁琐的问题,并且在一定程度上提高了服务器部署的效率。因为HTTP协议规范了用户请求的数据格式和服务器返回数据的格式。服务器可以规定用户在请求头中通过path去获取不同的文件。同时服务器通过响应头中的状态码可以告诉用户这次响应的状态。
-
为什么使用HTTP协议?
个人理解:因为HTTP协议在互联网中应用十分广泛,几乎所有的浏览器都支持HTTP协议,没有必要再去设计开发一种新的协议。
-
HTTP请求格式
- 例1:GET请求
GET / HTTP/1.1 Accept: */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: www.lshck.cn Connection: Keep-Alive
第一行GET表示请求方式,/表示根路由,HTTP/1.1表示HTTP1.1版本 Accept:客户端接受的响应数据类型 Accept-Language:客户端接受的语言 Accept-Encoding:压缩的方式 User-Agent:用户是通过什么工具发送请求的 Host:服务器地址 Connection:是长连接还是短链接
- 例2:POST请求
POST / HTTP1.1 Host:www.lshck.cn User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Content-Type:application/x-www-form-urlencoded Content-Length:40 Connection: Keep-Alive name=Chenkai&age=21
第一行中POST表示请求方式是POST Content-Type:请求体中数据的编码格式 Content-Length:请求体中数据的长度 注:请求头和请求体使用两个\r\n来分割
-
HTTP响应格式
HTTP/1.1 200 OK Date: Thu, 09 Apr 2020 11:48:24 GMT Content-length: 12585 Content-type: image/png <html> <title>这个是响应内容</title> </html>
第一行HTTP/1.1表示HTTP1.1版本,200表示状态码,OK是状态码原因短语 Date: Thu, 09 Apr 2020 11:48:24 GMT # 时间 Content-length: 12585 # 响应的长度 Content-type: image/png # 响应文件的格式 <html> <title>这个是响应内容</title> </html>
- 常用状态码
- 200:用户请求成功
- 201:修改数据成功
- 301:永久重定向
- 302:临时重定向
- 404:服务器找不到对应文件
- 502:服务器异常
- 常用状态码