HTTP使用指南笔记 | 青训营笔记

78 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第9天

HTTP使用指南笔记

初识HTTP

HTTP(Hyper Text Transfer Protocol),译为超文本传输协议,是属于应用层协议,顾名思义,超文本说明传输的不只是文本,还有图片、视频等等,它是一个传输这些数据的一个协议,也是一个简单的请求、响应协议。一般来说,它运行在TCP协议之上并基于TCP协议,具有简单可扩展、无状态的特点。

执行过程

我们输入某网址到跳转并渲染完成到该网址中,发生了什么? image.png

image.png 过程:

  • 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

image.png

safe:不会修改服务器数据的方法:GET HEAD OPTIONS
Idempotent(幂等):同样的请求被执行一次与连续执行多次效果是一样的,服务器状态也是一样的,所有的safe方法都是Idempotent的:GET HEAD OPTIONS PUT DELETE
  • 状态码
1xx:指示信息,表示请求已接受,继续处理
2xx:成功,表示请求已经被成功处理、理解、接受
3xx:重定向,要完成请求必须进行更进一步的操作 
4xx:客户端错误,请求有语法错误或请求无法实现
5xx:服务器端错误,服务器端未能实现合法的请求