服务器并不会有一个统一的最佳资源形式标准而用户端浏览器也不一定有能力处理所有的实体类型。
5易于扩充 作为一个公开发布使用协议HTTP 具有良好的可扩充性它传输的已不仅仅是超文本数据。
在此基础上针对应用开发者的研究、开发要求可以很容易地增加请求方法和响应状态运行于用户定制的系统之中。
经过扩充的服务器能够响应原有标准的浏览器也能够区别出用户自己开发的专用客户程序做出相应的响应处理。
图1-1介绍了HTTP协议的通信过程 图1-1 1.3 HTTP会话及报文格式 基于HTTP协议的客户机访问包括4个过程分别是建立TCP套接字连接、发送HTTP请求报文、接收HTTP应答报文和关闭TCP套接字连接 1创建TCP套接字连接 客户端与WEB服务器创建TCP套接字连接其中WEB端服务器的地址可以通过域名解析确定WEB端的套接字侦听端口一般是80。
2 发送HTTP请求报文 客户端向WEB服务端发送请求报文HTTP协议的请求报文格式如表1-1所示 10 1 请求消息 请求行实体头信息CRLF实体内容 请求行 方法 URL HTTP版本号 CRLF 方法 GETHEADPOST扩展方法 URL 协议名称 宿主名 目录与文件名 表1-1 其中“CRLF”表示回车换行。
“请求行”中的“方法”描述了对指定资源执行的动作常用的方法“GET”、“HEAD”和“POST”等3种它们的含义如表1-2所示 取值 描述 GET 从WEB服务器中获取对象不同类型的对 象将获取不同的信息比如 · 文件类型对象获取该文件的内容。
· 程序类型对象获取该程序执行的结果。
· 数据库查询类型对象获取该查询的结果。
HEAD 要求服务器查找对象的元信息。
POST 从客户端向WEB服务器发送数据。
表1-2 实体头信息中记载了报文的属性利用这些信息可以实现客户端与WEB服务器之间的请求或应答它包括报文的数据类型、压缩方法、语言、长度、压缩方法、最后一次修改时间、数据有效期等信息。
实体内容是报文传送的附加信息一般供POST请求填写。
URL为“http://www.honggewang.com/upfile/media/guojia.mp3”的GET请求报文如表1-3 GET http://www.honggewang.com/upfile/media/guojia.mp3 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.honggewang.com Connection: Keep-Alive 表1-3 其中quot/upfile/media/guojia.mp3quot是URL信息语句quotACCEPT/quot及其后的语句是quot实体头信息quot。
10 1 3接收HTTP应答报文 WEB服务器处理客户请求并向客户机发送应答报文HTTP协议的应答报文格式为 应答报文 状态行实体头信息CRLF 实体内容 状态行 HTTP版本号 状态码 原因叙述 状态码描述了WEB服务器执行客户机请求的状态信息表1-4描述了HTTP的应答码含义 取值 描述 1xx 保留 2xx 成功接收比如“200”表示处理成功 3xx 客户需进一步细化请求 4xx 客户错误比如“404”表示访问指定资源不存在 5xx 服务器错误 表1-4 表1-5为某个应答报文例子。
4关闭TCP套接字连接 客户机与服务器双方关闭套接字连接结束TCP/IP对话。
HTTP/1.1 200 OK Connection: keep-alive Date: Thu 26 Jul 2007 14:00:02 GMTServer: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Content-Length: 190 Content-Type: text/html Set-Cookie: ASPSESSIONIDSAATTCSQJOPPKDCAMHHBEOICJPGPBJOB path/ Cache-control: private lthtmlgt ltheadgt lttitlegt花的世界lt/titlegt lt/headgt 10 1 ltbodygt ltbgt为你所喜爱的花投上一票吧ltbrgtlt/bgt ltbgt投票测试ltbrgtlt/bgt 你选择了 梅花 lt/bodygt lt/htmlgt 表1-5 2 Windows套接字 2.1 什么是套接字 套接字socket是一种网络编程接口。
它是对通信端点的一种抽象提供了一种发送和接收数据的机制。
套接字是通信的基石一个套接字是通信的一端。
在通信的任何一端上用户可以找到套接字及与其对应的一个套接字名字。
一个正在被使用的套接字都有它的类型和与其相关的进程。
套接字存在于通讯域中。
通讯域是为了处理一般的线程通过套接字通讯而引进的一种抽象概念。
套接字通常和同一个域中的套接字交换数据数据交换也可能穿越域的界限但这时一定要执行某种解释程序。
Windows Sockets规范支持单一的通讯域即.
上一篇:
毕业设计(论文)
下一篇:
爱情只不过就是,爱与不爱