常见报文类型

1、超文本传输协议

  超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

1> Request和Response的格式

Request格式:
HTTP请求行
(请求)头
空行
可选的消息体
注:请求行和标题必须以 作为结尾(也就是,回车然后换行)。空行内必须只有而无其他空格。在HTTP/1.1 协议中,所有的请求头,除Host外,都是可选的。

实例:

GET / HTTP/1.1
Host: gpcuster.cnblogs.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Mon, 25 May 2009 03:19:18 GMT

Response格式:
HTTP状态行
(应答)头
空行
可选的消息体

实例:

HTTP/1.1 200 OK
Cache-Control: private, max-age=30
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: Mon, 25 May 2009 03:20:33 GMT
Last-Modified: Mon, 25 May 2009 03:20:03 GMT
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Mon, 25 May 2009 03:20:02 GMT
Content-Length: 12173
­消息体的内容(略)
2> HTML

  文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言。
  一个网页对应于一个HTML文件,HTML文件以.htm或.html为扩展名。可以使用任何能够生成TXT类型源文件的文本编辑来产生HTML文 件。 超文本标记语言标准的HTML文件都具有一个基本的整体结构,即HTML文件的开头与结尾标志和HTML的头部与实体2大部分。有3个双标记符用于页面整 体结构的确认。

<html>
<head>
<title>Document name goes heretitle>
head>
<body>
Visible text goes here   404 file not found
body>
html>

<a href="http://www.example.com/">This is a Linka>
<a href="http://www.example.com/"><img src="URL"
alt="Alternate Text">a>
<a href="mailto:[email protected]">Send e-maila>A named anchor:
<a name="tips">Useful Tips Sectiona>
<a href="#tips">Jump to the Useful Tips Sectiona>

总结:HTML是超文本标记语言,HTTP是协议,HTML在HTTP协议上运行的;通过HTTP协议也可以传输声音、图像、数据。等等。

2、XML报文

  XML为Extensible Markup Language的缩写,即可扩充标注语言。它是由SGML所精简而来的一种通用标注语言,主要是要简化SGML烦杂的结构,强化HTML过于简单而不够严谨的语法。微软是XML技术的推动者之一,它希望能够建立一个可以为WWW 广泛使用语言环境,推动程序的兼容与协同,从而降低成本,刺激增长。
  虽然XML创立之初只是被当作一项基础技术,但其发展早已超出设计者原先的构想。不论是学术界还是商业界都将其视为下一代网络的基石。XML现在已经成为一股不可抵挡的技术潮流。
  现有的XML主要应用在四个方面:一是应用于具有不同复杂格式的不同数据源间的交互;二是应用于大量运算负荷分布在客户端的情况,用户可以根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只需发出同一个XML文件;三是应用于将同一数据以不同的形式表现出来;四是应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要,形成具有个人特色的数据文件。
  事实上,XML技术的潜能还远未被充分挖掘。据一份最新的研究指出,以XML为基础的内容生命周期产品,将在今后5年以10倍的速度快速成长,在2008年达到116亿美元的营业规模。以XML和Web服务为主的研究公司Zap Think在研究报告中也指出,这些以XML为基础并包括Web服务的工具,是将旧有系统再度激活的新希望。
  “XML最大的影响在于XML软件大量兴起:XML剖析器、XML程序语言库、XSLT处理器、XSL FO处理器、数据库接受XML——不只如此,还有网络浏览器也接受XML。”XML工作小组创始会员C.M. Sperberg-McQueen如是认为。也正因为如此,IBM、微软、SUN、惠普、Oracle等大公司纷纷进入这个市场。
  而在XML最大应用之一的数据格式转换领域,Adobe、微软、Core都在各自相关的软件产品中充分利用了XML技术。以程序关联为特色的Office 2003更是将XML的格式转换特性发挥到了极致,以至于这个软件套装几乎成为了一个独立的数据系统。


	%Common;
]>


<project name="jdk11" default="init" basedir=".">

	<property environment="env" />
	<property file="${env.CRYPTO_PROP}" />

	
	<target name="clean" depends="common-clean" />
	<target name="test" depends="common-test" />
	<target name="dist" depends="common-dist" />
	<target name="package" depends="common-package" />
	<target name="compile" depends="init, local-compile" />
	<target name="jdoc" depends="common-jdoc" />

	
	<property name="master.jdk" value="jdk11" />
	&Common;

	
	<patternset id="jdk11.lw-compatibility" >
		<include name="java/**" />
	patternset>

	<patternset id="jdk11.jce-compatibility">
		<include name="org/**" />
	patternset>

	<patternset id="jdk11.lw-extras" >
		<include name="org/bouncycastle/crypto/test/*.java" /> 
	patternset>

	<patternset id="orgbc.javax">
		<include name="javax/**" />
	patternset>

	<patternset id="orgbc.lw-source" >
		<include name="org/bouncycastle/math/ec/*.java" />
		<include name="org/bouncycastle/crypto/**" />
		<include name="org/bouncycastle/util/**" />
		<include name="org/bouncycastle/asn1/**" />
	patternset>

	<patternset id="orgbc.jce-source" >
		<include name="org/bouncycastle/jce/**" />
		<exclude name="org/bouncycastle/jce/netscape/*" />
		<exclude name="org/bouncycastle/jce/provider/X509CertificateObject.java" /> 
		<exclude name="org/bouncycastle/jce/provider/RSAUtil.java" />
		<exclude name="org/bouncycastle/jce/provider/JDKX509CertificateFactory.java" /> 
		<exclude name="org/bouncycastle/jce/provider/test/RSATest.java" /> 
		<exclude name="org/bouncycastle/jce/provider/test/RegressionTest.java" /> 
		
		<exclude name="org/bouncycastle/jce/provider/test/DSATest.java" /> 
		<exclude name="org/bouncycastle/jce/provider/test/DHTest.java" /> 
		<exclude name="org/bouncycastle/jce/provider/test/Netscape*.java" /> 
		<exclude name="org/bouncycastle/jce/provider/test/Named*.java" /> 
	patternset>

	<property name="build.compiler" value="classic" />
	<property name="bcp" value="${env.JAVA_HOME}/lib/classes.zip" />

	<path id="compile.cp">
		<pathelement location="${master.classes}" />
		<pathelement location="${bcp}" />
	path>

	<target name="local-compile" depends="llw-compile, ljce-compile" />

	
	<target name="llw-compile" if="is.lw">
		<echo message="jdk11.lw-compatibility" />
		<javac srcdir="${master.home}/jdk1.1"
			destdir="${master.classes}" 
			includeAntRuntime="no"
			includeJavaRuntime="no"
			debug="off"
			optimize="off"
			target="1.1">
			<patternset refid="jdk11.lw-compatibility" /> 
			
		javac>

		<echo message="orgbc.lw-source" />
		<javac srcdir="${master.src}"
			destdir="${master.classes}" 
			includeAntRuntime="no"
			includeJavaRuntime="no"
			debug="off"
			optimize="off"
			target="1.1">
			<patternset refid="orgbc.lw-source" /> 
			
		javac>

	target>

	<target name="ljce-compile" if="is.jce" >
		
		<antcall target="llw-compile">
			<param name="is.lw" value="true" />
		antcall>

		
		<echo message="orgbc.jce-source" />
		<javac srcdir="${master.src}"
			destdir="${master.classes}" 
			includeAntRuntime="no"
			includeJavaRuntime="no"
			debug="off"
			optimize="off"
			target="1.1">
			<patternset refid="orgbc.javax" /> 
			<patternset refid="orgbc.jce-source" /> 
			
		javac>

		<echo message="jdk11.jce-compatibility" />
		<javac srcdir="${master.home}/jdk1.1"
			destdir="${master.classes}" 
			includeAntRuntime="no"
			includeJavaRuntime="no"
			debug="off"
			optimize="off"
			target="1.1">
			<patternset refid="jdk11.jce-compatibility" /> 
			
		javac>

	target>
project>

3、JSON

  JSON,全称是JavaScript Object Notation。它是基于JavaScript编程语言ECMA-262 3rd Edition-December 1999标准的一种轻量级的数据交换格式,主要用于用于跟服务器进行交换数据。跟XML相类似,它独立于语言,在跨平台数据传输上有很大的优势。
  上面是百科的解释,可以说明json大概的意思和作用,json其实就是键值对存储数据,举个例子:var a ={"one":"一","two":"二","three":"三"},a就是一个json,a.one的值就是一,还可以内嵌数组var b={"A":"[1,2,3,4,5,6,7]","B":"[a,b,c,d,e]"},b.A[0]的值就是1,json变量里面还可以内嵌json,可以内嵌数组,取值方法就是如上面的那种,数组用下标,json取键值对的名,使用起来很方便,数据存储格式简洁。

4、自定义报文

你可能感兴趣的:(常见报文类型)