概念:
报文(message)是网络中交换与传出的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长短不限且可变。
报文也是网络传输的单位,传输过程中会不断的封装成组,包,帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。
比如:里面有报文类型,报文版本,报文长度,报文实体等信息。
完全与系统定义,或自定义的数据结构同义。
认证方法:报文的认证有传统加密方法的认证,使用密匙的报文认证码方式,使用单向散列函数的认证和数字签名认证方式。
HTTP报文详解:
他是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容以及含义,后面的跟着可选的数据部分。这些报文都是在客户端,服务器和代理之间流动。
HTTP报文的流向:一次HTTP请求。HTTP报文会从“客户端”留到“代理”在留到“服务器”,在服务器工作完成之后,报文会从“服务器”在服务器工作完成之后,报文后悔偶从“服务器”留到“代理”,在留到“客户端”
报文的语法:所有的HTTP报文都会刻意分为两类,请求报文和响应报文。请求和响应报文的基本报文结构大致是相同的,只有七十的语法有所不同,
请求报文:他会想WEB服务器请求一个动作
请求报文的格式:起始行<method><request-URL><version>
头部:<headers>
主体:<entity-body>
响应报文:他会将请求的结果返回给客户端
响应报文的格式:
起始行:<version><status><reason-phrase>
头部:<headerers>
主体:<entity-body>
下面是对各个部分的简要描述:
1.方法(method):客户端希望服务器对资源执行的动作,是一个单独的词,比如:get,post或head
2.请求URL(request-URL):要直接与服务器进行对话,只要请求URL是资源路径就可以了,服务器可以假定自己是URL的主机和端口。
3.版本(version):报文所使用的是HTTP版本。其个是你:HTTP<主要版本号><次要版本号>
4.状态码(status-code):状态码三位数,描述了请求过程中所发生的情况。每个状态码的第一位数字都用于描述状态的一般类别(比如“成功”,“出错”等等)
5头部:可以哟偶另个后多个头部,每一手部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,接着是一个值,最后是一个CRLF收不是有一个空行(crlf)结束的,表示了头部列表的结束和实体部分的开始
报文就是在各个系统之间进行请求和响应是用来交换嘻嘻的,还需要遵守规定好的格式
另外:应用宝文多十多个系统之间需要通信的时候,比如一行ESB系统到网关系统再到银联系统,在这中间报文就承担了装载数据,运输数据的功能,可能在这三个系统中报文的格式互不相同
承载的数据都是一样的
其中<Method>字段有不同的值:
GET --- 访问服务器的资源
POST --- 向服务器发送要修改的数据
HEAD --- 获取服务器文档的首部
PUT --- 向服务器上传资源
DELETE--- 删除服务器的资源
<URL>字段表示服务器的资源目录定位
<Version>字段表示使用的http协议版本