- 浏览: 54674 次
- 性别:
- 来自: 广州
最新评论
-
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 1296(转自:http://hi.baidu. ... -
【转】Protocol Header Images
2012-01-27 06:45 603http://www.troyjessup.com/heade ... -
【转】DNS协议及应用
2012-01-27 06:44 871(转自http://jwx.zgz.cn/cl/7 ... -
DNS 伺服器
2012-01-26 06:03 499DNS 伺服器http://linux.vbird.org/l ... -
HTTP Request
2012-01-26 06:02 720HTTP Request Published ... -
HTTP multipart/form-data 上传方式说明
2012-01-26 06:01 825( From: http://home.meegoq.c ... -
Struts2源码分析--请求处理
2011-12-01 10:03 607(转自:http://www.blogjava.ne ... -
java web学习笔记
2011-11-21 09:50 545Tomcat Configuration 资 ... -
[转] HTTP multipart/form-data 上传方式说明
2011-10-15 06:08 1262( From: http://home.meegoq.co ... -
Multipart uploading spec
2011-10-15 06:07 637Upload File: abc.txtContent:abc ... -
【转】Webcam Manipulation with Javascript
2011-10-15 06:04 756( From:http://blog.trumpton.org ... -
Table单元格td的position:relative的兼容性
2011-10-11 12:35 1874( From: http://www.itref.cn/a/ ... -
a lib: jXHR (JSON-P XHR)
2011-10-11 12:18 651http://mulletxhr.com/ -
Remote JSON - JSONP
2011-10-11 12:16 669( From : http://bob.pythonmac.o ... -
cross-domain资源
2011-10-07 01:32 549发现一个网站,没来得及细看,留个网址:http://www.c ... -
Single Sign-On
2011-10-07 01:25 571Single Sign-On Single sign-on ... -
HTTP multipart/form-data 上传方式说明
2011-10-07 01:23 764HTTP multipart/form-data 上传方式 ... -
Relying on DOM readiness to invoke a function (instead of window.onload)
2011-10-06 06:45 577( From: http://www.javascriptki ... -
【转】Calling Cross Domain Web Services in AJAX
2011-10-06 06:41 719(From: http://www.simple-talk ... -
Which browsers support HTML5, CSS3, Data URLs, etc.
2011-10-06 06:38 612http://caniuse.com/#
相关推荐
实时监控串口,将从串口读取到的数据通过http发送到云端,同时http数据报文格式可以自定义,同时命令行支持灵活配置 串口参数。源码支持跨平台
模型遥控器 CRSF 协议数据格式
硕士论文,可以用CAJ软件打开。希望能够对大家有用。
C++的slip协议帧报文程序,串口转网络协议,串口转网络协议
ARP协议简介 ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。 IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们...
三菱PLC的RS232通讯协议格式转换器源码。@大白梨。
MODBUS RTU协议中浮点数的相互转换 从浮点数到整形,以及从整形到浮点数 带简单的协议说明文档
CANFDRS-100IE和CANFDUM-100A 转换器是一款智能协议转换器,支持串口与CAN(CANFD)之间转换。使用前需要先设置好要转换的CAN类型是普通CAN还是CANFD。 转换器给出了四种转换模式供选择,包括:透明转换、透明带标识...
1 TCP/IP协议集 2 PPP协议 2.1 概述 2.2 状态机 2.3 LCP协商 2.4 PAP和CHAP 2.5 MP工作原理 2.6 网络控制协议(NCP) 3 互连网协议IP 3.1 IP地址及其转换 3.1.1 IP地址的表示方法 ...8.3 RADIUS报文格式
华为培训资料 1 TCP/IP协议集 2 PPP协议 2.1 概述 2.2 状态机 2.3 LCP协商 2.4 PAP和CHAP 2.5 MP工作原理 2.6 网络控制协议(NCP) 3 互连网协议IP ...3.4 Internet控制报文协议ICMP ...8.3 RADIUS报文格式
GPS数据包解析-UBLOX GPS 模块介绍 GPS_ublox_通用解析代码
CROSSFIRE 数据包协议
14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...
一、CAN报文简介 CAN是控制器局域网络(Controller Area Network, ...CAN报文按照帧格式可分为标准帧和扩展帧,标准帧是具有11位标识符的CAN帧,扩展帧是具有29位标识符的CAN帧。按照帧类型可分为:1.从发送节点向其它
14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...
tcp协议分析,简单介绍了TCP的报文格式、连接建立断开和状态机转换
14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...
14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...
14.3 DNS的报文格式 144 14.3.1 DNS查询报文中的问题部分 146 14.3.2 DNS响应报文中的资源记录部分 147 14.4 一个简单的例子 147 14.5 指针查询 150 14.5.1 举例 151 14.5.2 主机名检查 151 14.6 资源记录 152 14.7 ...