这是我参与「第四届青训营 」笔记创作活动的第9天
HTTP使用指南笔记
初识HTTP
HTTP(Hyper Text Transfer Protocol),译为超文本传输协议,是属于应用层协议,顾名思义,超文本说明传输的不只是文本,还有图片、视频等等,它是一个传输这些数据的一个协议,也是一个简单的请求、响应协议。一般来说,它运行在TCP协议之上并基于TCP协议,具有简单可扩展、无状态的特点。
执行过程
我们输入某网址到跳转并渲染完成到该网址中,发生了什么?
过程:
- 1、用户输入了一个网址
- 2、浏览器处理输入的信息
- 3、浏览器内核处理信息后通过互联网向服务器发送请求
- 4、服务器读取信息响应请求
- 5、浏览器内核渲染页面
- 6、浏览器加载页面完成
这是HTTP在应用层做的事。
协议分析
发展
- HTTP/0.9单行协议:1、请求GET/page.html 2、响应只有html文档
- HTTP/1.0构建可扩展性:1、增加了Header 2、有了状态码 3、支持多文档类型
- HTTP/1.1标准化协议:1、链接复用 2、缓存 3、内容协商
- HTTP/2更优异的表现:1、二进制协议 2、压缩header 3、服务器推送
- ··················
报文
- 请求行:
//request:
Method Request-URI HTTP/Version CRLF
//请求方法(get/post···)+请求路径+http版本
//responses:
Method Path httpVersion statusCode statusMessage
//尾部加上了状态码和状态码信息
- method
safe:不会修改服务器数据的方法:GET HEAD OPTIONS
Idempotent(幂等):同样的请求被执行一次与连续执行多次效果是一样的,服务器状态也是一样的,所有的safe方法都是Idempotent的:GET HEAD OPTIONS PUT DELETE
- 状态码
1xx:指示信息,表示请求已接受,继续处理
2xx:成功,表示请求已经被成功处理、理解、接受
3xx:重定向,要完成请求必须进行更进一步的操作
4xx:客户端错误,请求有语法错误或请求无法实现
5xx:服务器端错误,服务器端未能实现合法的请求