HTTP(超文本传输协议)是建立在TCP传输协议之上的应用层协议,他目前主流是针对WEB开发,HTTP协议应用非常广泛,因此掌握HTTP协议的开发非常之重要。Netty是如何基于HTTP协议进行开发,那么使用Netty的HTTP协议也是异步非阻塞的。
Http协议的特点:
简单:客户端请求服务器是,只需要指定URL和携带必要的参数即可
灵活:Http协议允许传输任意类型的数据对象,传输内容由HTTP消息头中的Content-Type加以标记。
无状态:Http协议是无状态的,无状态指的是协议对事务处理没有记忆能力,这意味着如果后续处理需要之前的信息, 则它必须重新获取。也从侧面体现http的设计是为了使网络传输更加的轻量级、敏捷、负载较轻。
Http协议组成部分:
请求行
请求头
请求正文(实体内容)
Http协议请求方式:
GET:获取Request-URl所标识的资源。
POST:在Request-URl所标识的资源附加新的提交数据
HEAD:请求获取由Request-URl所标识的资源的响应消息头
PUT:请求服务器存储一个资源,并用Request-URl作为标识
DELETE:请求服务器删除Request-URl所标识的资源
TRACE:请求服务器回送收到的请求信息,主要是测试和诊断使用(@trace)
CONNECT:保留将来使用
OPTINONS:请求查询服务器的性能忙活着查询相关资源的选项和需求
Http协议的响应消息:响应消息由三部分组成:状态行、消息头。响应正文
响应状态种类:
1xx:提示信息。表示请求已经接收继续处理。
2xx:成功。表示请求已经接收成功。
3xx:重定向。要完成的请求必须进行更进一步的操作
4xx:客户端错误。可能是请求语法错误或者请求无法实现
5xx:服务器端错误。服务器未能处理请求(可能内部出现错误)
常见相应状态码:
200 OK: 成功
400 Bad Request:错误的请求语法,不能被服务器理解
401 Unauthorized:请求未经授权
403 Forbidden:服务器收到请求,但请求被服务器拒绝
404 Not Found:请求资源不存在
405 Method Not Allowed:请求方式不被允许,如只支持get请求,但客户端使用了post请求
500 Inernal Server Error:服务器发送不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端请求,一段时间后可能恢复正常