HTTP协议
简介:
超文本传输协议,基于请求与响应模式、无状态、应用层面向对象的协议,基于TCP的连接方式,主要特点如下:
- 支持客户端/服务器模式
- 简单快速:客户端向服务器发送请求服务时,只需传递请求方式和路径。通信速度较快
- 灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由conteng-type标记
- 无连接:限制每次连接只处理一个请求,服务器处理完客户端的请求并收到客户端应答后,就断开连接,节省传输时间
- 无状态:对事物处理无记忆能力,缺少状态意味着如果后续需要处理前面的信息则必须重传
请求方式:
由三部分组成:请求行、消息报头、请求正文
请求方法:
- GET:请求获取Request-URI所标识的资源
- POST:在Request-URI所标识的资源后附加新的数据
- HEAD:请求获取由Request-URI所标识的资源的响应消息报头
- PUT:请求服务器存储一个资源,并用Request-URI作为标识
- DELETE:请求服务器删除Request-URI所标识的资源
- TRACE:请求服务器回送收到的请求信息,主要用于测试和诊断
- OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求
GET和POST的区别:
- GET参数根据URL传输,POST放在request body中
- POST比GET更安全
- 对于参数的数据类型,GET只接受ASCII字符,但POST没有限制
- GET有长度限制,但POST没有
- GET请求参数会被完整保存在浏览器历史记录中,而POST则不会
- GET只支持url编码,而post支持多种编码方式
- GET请求会自动被浏览器cache,而POST不会
- GET在浏览器回退是无害的,而POST会再次提交请求
参考地址:https://www.cnblogs.com/logsharing/p/8448446.html
状态码:
- 1xx:指示信息--表示请求已接收,继续处理
- 2xx:成功--表示请求已被成功接收、理解
- 3xx:重定向
- 4xx:客户端错误--请求有语法错误或请求无法实现
- 5xx:服务器错误
常见状态码:
- 101:切换协议,表示服务器应客户端升级协议的请求对协议进行切换,常见于websocket协议
- 200:成功
- 301:永久跳转
- 302:临时跳转
- 400:客户端请求有语法错误,服务器无法理解
- 401:请求未授权
- 403:Forbidden,服务器收到请求,但拒绝提供服务
- 404:资源不存在
- 500:服务器内部错误
- 502:网关错误
- 503:服务不可用,服务器超载或停机
- 504:网关超时
部分参考地址:https://blog.csdn.net/panshi5188/article/details/110522502
全文参考地址:https://blog.csdn.net/gueter/article/details/1524447