HTTP协议介绍

HTTTP协议介绍

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

HTTP协议的主要特点

  • 支持Client/Server 模式
  • 简单 - 客户向服务器其你去服务时,只需指定服务URL,携带必要的请求参数或者消息体;
  • 灵活 - HTTP 允许传输任意类型的数据对象,传输的内容类型由HTTP消息头中的Content-Type加以标记
  • 无状态 - HTTP 协议的无状态协议,无状态是指协议对于事物处理没有记忆能力。缺少状态以为着如果后续处理要之前的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快,负载交轻。

HTTP请求消息

HTTP请求由三部分组成:

  • HTTP 请求行
    • Method Request-URI HTTP-Version CRLF

    Method : 有常见的一些方法,

    • GET:请求获取Request-URI 所表示的资源;主要以URL+?+ param1&param2&paramn ,因此在传输数据大小、安全性上会弱一些
    • POST :在Request-URI所表示的资源后附加新的提交数据;数据会保存在HTTP请求的body里面,在数据大小上没有限制、安全性高;
    • HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS
  • HTTP 消息头
HTTP消息请求表如下(HttpRequest):
名称 Key作 用
Accept 用于定制客户端接受那些类型的信息。例如:Accept:image/gif 表明客户端希望接受GIF图像格式的资源
Accept-Charset 用于指定客户端接受的字符集。例如:Accept-Charset:iso-8859-1,gb2312,utf-8 ,如果在请求消息中没有设置这个域,默认是任何字符集都可以接受。
Accept-Encoding 类似于Accept,但是它用于指定一种自然语言。例如:Accept-Language:zh-cn,如果请求消息中没有设置这个报头域,则服务器假定客户端对各种语言都可以接受。
Accept-Language 类似于Accept,但是它用于指定一种自然语言。例如:Accept-Language:zh-cn,如果请求消息中没有设置这个报头域,则服务器假定客户端对各种语言都可以接受。
Authorization 主要用于证明客户端有权查看某个资源。
Host 发送请求时,该报头域是必需的,用于指定被请求的资源的Internet主机和端口号,它通常是从HTTP请求的URL中提取出来的。
User-Agent 允许客户端将它的操作系统、浏览器和其它属性告诉服务器
Content-Length 请求消息体的长度
Content-Type 表示后面文档的MIME类型,一般常用的有application/json,text/html 等
Connection 请求连接类型
HTTP消息响应(HttpResponse):

主要格式基本不变:

状态码状态描述
1xx 指示信息。表示请求已接收,继续处理;
2xx 成功。表示请求已被成功接收、理解、接受;
3xx 重定向。要完成请求必须进行更进一步的操作;
4xx 客户端错误。请求有语法错误或者请求无法实现;
5xx 服务器端错误。服务器未能处理请求。

 

  • HTTP 请求正文

HTTP协议的主要弊端:

  1. HTTP协议为半双工协议。半双工协议指数据可以在客户端和服务端两个方向上传输,但是不能同时传输。它意味着在同一时刻,只有一个方向上的数据传送;
  2. HTTP消息冗长而繁琐。HTTP消息包含消息头、消息体、换行符等,通常情况下采用文本方式传输,相比于其他的二进制通信协议,冗长而繁琐;
  3. 针对服务器推送的黑客攻击。例如长时间轮询

Netty 建立Http请求

posted @ 2018-10-11 21:03  q兽兽  阅读(716)  评论(0编辑  收藏  举报