这是我参与「第四届青训营 」笔记创作活动的第11天
一、初识HTTP协议
什么是HTTP:
它是一种超文本传输协议,它可以承载多种内容,例如网站所需的一些HTML、CSS、js和API等等,它属于是应用层的协议,是基于TCP协议实现的,它可以用于请求和相应。
HTTP是简单可扩展的协议,而且是无状态协议
二、协议分析
协议的发展历程:
1、HTTP/0.9版本(单行协议) 请求:GET/mypage.html 简单的一行请求协议 响应只有HTML文档
2、HTTP/1.0版本(新增构建可扩展性) 在0.9版本的基础请求协议上还增加了Header,也增加了一些状态码,并且支持多种文档类型等。
3、HTTP/1.1版本(标准化协议) 这个版本基于TCP,新增了链接复用、缓存、和内容写上等功能,这个是版本相对比较完整的了,使用范围广。
4、HTTP/2版本(更优异的表现) 使用二进制协议,压缩了Header,优化了传输速度和稳定性。
Method的一些常用方法:
- GET方法:请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据,服务器根据参数返回指定的实体,该操作不会对服务器的数据做任何的修改。特点:将请求的参数拼接在URL的后面,参数一般没有限制;参数拼接在URL后面容易被抓包,引起安全问题。
- POST方法:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
- PUT方法:与post方法类似,用请求有效载荷替换目标资源的所有当前表示请求侧重于内容的更新。
- DELETE方法:删除指定的资源
- HEAD方法:请求一个与GET请求的响应相同的响应,但没有响应体
- CONNECT方法:建立一个到由目标资源标识的服务器的隧道。
- OPTIONS方法:用于描述目标资源的通信选项。
- TRACE方法:沿着到目标资源的路径执行一个消息环回测试。
- PATCH方法:用于对资源应用部分修改。
状态码:
当页面请求服务器的时候总会返回一些状态码,以下是一些状态码的含义
常见状态码
- 200-客户端请求成功
- 301-资源(网页等)被永久转移到其它URL
- 302-临时跳转
- 401-Unauthorized - 请求未经授权
- 404-请求资源不存在,可能是输入了错误的URL
- 500-服务器内部发生了不可预期的错误
- 504-Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。
参考:
状态码部分参考:HTTP 状态码 | 菜鸟教程 (runoob.com)