- 浏览: 57216 次
- 性别:
- 来自: 广州
最新评论
-
Joson_Coney:
11.
while( (*strDest++ = *strSr ...
c++笔试题汇总 -
Joson_Coney:
③ 1.
int func(x)
{
int countx = ...
c++笔试题汇总 -
Joson_Coney:
链表反向1:
#include <cstdlib&g ...
c++笔试题汇总
(From: http://book.51cto.com/art/200902/109036.htm)
(与我所看到的报文略有不同 (form表单post提交,multipart/form-data),这篇文章是Unix下C编程)
接下来我们看看HTTP协议(Hypertext Transfer Protocol――超文本传输协议)浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式。
基于HTTP协议的客户机访问包括4个过程,分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接:
1. 创建TCP套接字连接
客户端与WEB服务器创建TCP套接字连接,其中WEB端服务器的地址可以通过域名解析确定,WEB端的套接字侦听端口一般是80。
2. 发送HTTP请求报文
客户端向WEB服务端发送请求报文,HTTP协议的请求报文格式为:
请求消息 = 请求行(实体头信息)CRLF[实体内容]
|
其中"CRLF"表示回车换行。
"请求行"中的"方法"描述了对指定资源执行的动作,常用的方法"GET"、"HEAD"和"POST"等3种,它们的含义如表15-8所示:
表15-8 HTTP请求方法
取值 |
描述 |
GET |
从WEB服务器中获取对象,不同类型的对 · 文件类型对象,获取该文件的内容。 · 程序类型对象,获取该程序执行的结果。 · 数据库查询类型对象,获取该查询的结果。 |
HEAD |
要求服务器查找对象的元信息。 |
POST |
从客户端向WEB服务器发送数据。 |
"实体头信息"中记载了报文的属性,利用这些信息可以实现客户端与WEB服务器之间的请求或应答,它包括报文的数据类型、压缩方法、语言、长度、压缩方法、最后一次修改时间、数据有效期等信息。
实体内容是报文传送的附加信息,一般供POST请求填写。
GET请求报文例子
一个URL为"http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱云翔"的GET请求报文例子如下:
GET http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱云翔 HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: www.zhiliaowang.com
Connection: Keep-Alive
其中"/toupiaoceshi.asp?name=朱云翔"是URL信息,语句"ACCEPT:*/*"及其后的语句是"实体头信息"。
注意:在语句"Connection:Keep-Alive"下的空行是必须的。
POST请求报文例子
下面是HTTP协议中关于POST请求报文例子,节自《中国联合通信公司短消息网关系统接口协议(SGIP)》V1.2版:
Host: www.spserver.com /* 以下为实体头信息 */
Authorization: Basic <Base64 串>
Content-Length: <Content-Length>
<CommandId>=<4> /* 以下为POST请求的实体信息 */
<SequenceNumber>=<205502327125025327> /* 实体部分输送报文 */
<UserNumber>=<8613001125453>
<SPNumber>=<168>
<MessageContent>=<ABCD 1234>
一般情况下,采用POST报文传送信息的数据存储在"实体"部分中。
3. 接收HTTP应答报文
WEB服务器处理客户请求,并向客户机发送应答报文,HTTP协议的应答报文格式为:
应答报文 = 状态行(实体头信息)CRLF [实体内容]
状态行 = HTTP版本号 状态码 原因叙述
状态码描述了WEB服务器执行客户机请求的状态信息,其取值含义如表15-8所示:
表15-8 HTTP应答响应码含义
取值 描述 1×× 保留。 2×× 成功接收,比如“200”表示处理成功。 3×× 客户需进一步细化请求。 4×× 客户错误,比如“404”表示访问的指定资源不存在。 5×× 服务器错误。
GET应答报文例子
一个请求URL为"http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱云翔"的应答报文例子如下:
Connection: keep-alive
Date: Thu, 26 Jul 2007 14:00:02 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 190
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSAATTCSQ=JOPPKDCAMHHBEOICJPGPBJOB; path=/
Cache-control: private
<html>
<head>
<title>精通Unix下C语言编程</title>
</head>
<body>
<b>精通Unix下C语言编程与项目实战<br></b>
<b>投票测试<br></b>
感谢你为选手
朱云翔
投票!
</body>
</html>
语句"HTTP/1.1 200 OK"中,"200"是响应码,"OK"是原因描述。
POST应答报文例子
下面是HTTP协议中关于POST应答报文例子,节自《中国联合通信公司短消息网关系统接口协议(SGIP)》V1.2版:
Date: Tue, 13 Mar 2001 02:45:12 GMT /* 以下为实体头信息 */
Server: Apache/1.3.12 (Unix)
Content-Type: text/html
Connection: close
<CommandId>=<80000004> /* 以下为POST应答的实体信息 */
<SequenceNumber>=<205502327125025327>
<UserNumber>=<8613001125453>
<SPNumber>=<168>
<MessageContent>=< EFGH 5678> <Result>=<0>
一般情况下,POST应答报文的"实体"部分存储实际传输的信息。
4. 关闭TCP套接字连接
客户机与服务器双方关闭套接字连接,结束TCP/IP对话。
发表评论
-
【转】DNS协议报文(RFC1035)
2012-01-27 06:46 1333(转自:http://hi.baidu. ... -
【转】Protocol Header Images
2012-01-27 06:45 658http://www.troyjessup.com/heade ... -
【转】DNS协议及应用
2012-01-27 06:44 942(转自http://jwx.zgz.cn/cl/7 ... -
DNS 伺服器
2012-01-26 06:03 530DNS 伺服器http://linux.vbird.org/l ... -
HTTP Request
2012-01-26 06:02 762HTTP Request Published ... -
HTTP multipart/form-data 上传方式说明
2012-01-26 06:01 865( From: http://home.meegoq.c ... -
Struts2源码分析--请求处理
2011-12-01 10:03 648(转自:http://www.blogjava.ne ... -
java web学习笔记
2011-11-21 09:50 590Tomcat Configuration 资 ... -
[转] HTTP multipart/form-data 上传方式说明
2011-10-15 06:08 1311( From: http://home.meegoq.co ... -
Multipart uploading spec
2011-10-15 06:07 677Upload File: abc.txtContent:abc ... -
【转】Webcam Manipulation with Javascript
2011-10-15 06:04 805( From:http://blog.trumpton.org ... -
Table单元格td的position:relative的兼容性
2011-10-11 12:35 1912( From: http://www.itref.cn/a/ ... -
a lib: jXHR (JSON-P XHR)
2011-10-11 12:18 699http://mulletxhr.com/ -
Remote JSON - JSONP
2011-10-11 12:16 694( From : http://bob.pythonmac.o ... -
cross-domain资源
2011-10-07 01:32 604发现一个网站,没来得及细看,留个网址:http://www.c ... -
Single Sign-On
2011-10-07 01:25 615Single Sign-On Single sign-on ... -
HTTP multipart/form-data 上传方式说明
2011-10-07 01:23 784HTTP multipart/form-data 上传方式 ... -
Relying on DOM readiness to invoke a function (instead of window.onload)
2011-10-06 06:45 606( From: http://www.javascriptki ... -
【转】Calling Cross Domain Web Services in AJAX
2011-10-06 06:41 745(From: http://www.simple-talk ... -
Which browsers support HTML5, CSS3, Data URLs, etc.
2011-10-06 06:38 638http://caniuse.com/#
相关推荐
《网络协议报文格式大全》是一份详尽的参考资料,主要涵盖了互联网通信中涉及的各种协议报文的结构和格式。这份文档对理解网络通信的底层原理至关重要,是网络工程师、开发者以及网络安全专业人士不可或缺的工具书。...
《网络协议报文格式大全中文图文说明》是一个由华为公司提供的资源,包含了丰富的网络协议报文格式解析。这个.chm文件很可能是一个压缩过的帮助文档,通常用于存储大量的文本、图片和索引信息,方便用户查阅。下面将...
这份由华为技术有限公司编写的“网络协议报文格式大全”是网络学习者的重要参考资料,它以中文图文的形式详细阐述了各种网络协议的报文结构,旨在帮助读者深入理解网络通信的核心原理。 在计算机网络中,协议报文是...
《华为出品 史上最强网络协议报文格式大全中文图文说明》是一份极其重要的资源,它深入浅出地解析了网络通信中的各种协议报文格式,对于IT从业者,特别是网络工程师、开发者以及网络安全分析人员来说,是必备的学习...
《网络协议报文格式大全》是一部详尽阐述网络通信协议中报文结构的参考资料,尤其适合于网络开发人员、系统管理员以及对网络底层原理感兴趣的读者。CHM版(Compiled HTML Help)是一种常见的电子书格式,它将多个...
《网络协议报文格式大全 v1.0》是网络工程师必备的参考资料,它详细解析了各种网络协议的报文结构,对于理解数据在网络中的传输过程至关重要。本文将深入探讨网络协议的基本概念,以及常见的报文格式,以帮助你更好...
这份名为“史上最强网络协议报文格式大全中文图文说明”的文档,无疑为网络从业者提供了一套全面且深入的学习资源。它涵盖了网络协议报文的详细结构,帮助我们理解数据在网络中的传输方式。下面,我们将深入探讨其中...
《网络协议报文格式大全》是由华为技术有限公司提供的专业文档,深入解析了网络通信中的各种协议报文结构。这份资料涵盖了从链路层到应用层的全层次协议,旨在帮助读者理解和分析网络通信过程中的数据交换。以下是...
本压缩包"CAN总线CSV格式报文转ASC格式报文python源码.rar"提供了一个Python脚本,用于将CSV格式的CAN总线报文数据转换为ASC格式。Python是一种广泛使用的编程语言,尤其适合数据处理和分析任务,因为它拥有丰富的库...
总的来说,理解VXLAN报文格式对于网络工程师来说至关重要,它能帮助我们深入理解网络虚拟化的实现机制,以及如何在数据中心环境中有效地管理和扩展网络资源。通过这种方式,我们可以更好地利用VXLAN来构建灵活、可...
3. **构建HTTP请求**:根据自定义的HTTP数据报文格式,构造POST或PUT请求。这通常包括创建请求头,设置Content-Type(如application/json或text/plain),并将串口数据作为实体内容。 4. **发送请求**:使用HTTP...
802.1Q标签插入在源MAC地址和以太类型或长度字段之间,增加了一个4字节的标签,其中包含**TPID**(标签协议标识符,值为0x8100),**PCP**(优先权代码点,用于定义数据流优先级),**CFI**(标准格式指示,用于兼容...
CAN(Controller Area Network)总线是一种广泛应用于汽车电子、工业自动化和嵌入式系统的通信协议,它具有实时性强、抗干扰能力高等特点。在CAN总线通信中,数据的传输是以报文(Message)的形式进行的,每个报文...
5. **可扩展性**:为了适应不断变化的需求,这个工具应该设计成模块化和可扩展的,方便添加新的报文格式支持或修改现有转换规则。 6. **性能优化**:考虑到可能需要处理大量报文,工具在设计时应考虑效率和资源占用...
**ARP报文格式详解** ARP(Address Resolution Protocol,地址解析协议)是局域网中用于将IP地址转换为物理MAC地址的重要协议。在局域网内的通信中,由于数据链路层需要MAC地址来确定数据帧的目标设备,而网络层...
CRSF 协议数据格式详解 CRSF 协议是一种模型遥控器通信协议,主要用于飞行平台和遥控器之间的数据交换。该协议支持多种通信方式,包括单线半双工UART、双线全双工UART 和多主I2C 等。 硬件 CRSF 协议支持多种硬件...
在SLMP协议中,ASCII报文格式通常包含有副帧头、请求目标网络编号、站号、模块I/O编号、多点站号、请求数据长度、保留位、指令代码、子指令以及软元件信息等字段。 ### 知识点四:数据长度及响应格式 在进行数据...
总结起来,通用报文协议是一种基于Socket和TCP的通信规范,它通过标准化报文格式,提高了跨平台和跨应用的数据交换效率。理解和掌握通用报文协议的设计原理和实现方法,对于进行网络编程和构建高效网络服务具有重要...
在IT领域,报文格式化是一项重要的任务,尤其在通信协议、数据分析以及日志解析等场景中。"报文格式化程序.zip" 提供的工具就是为了解决这类问题,帮助用户将原始、混乱的报文数据转化为清晰、可读性强的格式。下面...
总的来说,HTTP报文格式和HTTP协议的工作过程是网络通信的基础,而DNS是互联网服务的重要支撑。掌握这些知识,无论是对开发者、网络管理员还是普通用户,都能帮助他们更好地理解和应对网络问题。通过深入研究...