网络教育的利弊:http协议的详细描述

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 18:32:50
比如客户端和web服务端的命令集

HTTP服务器与HTTP客户机之间的会话如下:
1 客户机与服务器建立联系
与服务器建立连接,就是与SOCKET建立连接,因此要指定机器名称、资源名称
和断口号,可以通过URL来提供这些信息。URL的格式为:
HTTP://<IP地址>/[端口号]/[路径][?<查询信息>]
资源的缺省值是INDEX或DEFAULT,断口号缺省为80.
2 客户向服务器提出请求
请求信息包括希望返回的文件名和客户机信息.客户机信息以请求头发送
给服务器,请求头包括HTTP方法和头字段.
HTTP方法常用的有GET、HEAD、POST,而PUT、DELETE、LINK、UNLINK方法
许多HTTP服务器都不使用。
头字段包括:
。DATE:请求发送的日期和时间
。PARGMA:用于向服务器传输与实现无关的信息。这个字段还用于告诉代理服
务器,要从实际服务器而不是从高速缓存取资源
。FORWARDED:可以用来追踪机器之间,而不是客户机和服务器的消息。这个字段
可以用来追踪在代理服务器之间的传递路由。
。MESSAGE_ID:用于唯一地标识消息
。ACCEPT: 通知服务器客户所能接受的数据类型和尺寸。(*/*表示可以接受
所有类型的数据。
。AOTHORIZATION:向服务器提供旁路安全保护和加密机制,若服务器
不需要这个字段,则不提供这个字段
。FROM:当客户应用程序希望想服务器提供有关其电子邮件地址时使用
。IF-MODEFIED-SINCE用于提供条件GET。如果所请求的文档自从所指定
的日期以来没有发生变化,则服务器应不发送该对象。如果所发送的日期格式不合
法,或晚于服务器的日期,服务器会忽略该字段
。BEFERRER:向服务器进行资源请求用到的对象
。MIME-VERTION:用于处理不同类型文件的MIME协议版本号
。USER-AGENT:有关发出请求的客户信息
3 服务器对请求作出应答
服务器收到一个请求,就会立刻解释请求中所用到的方法,并开始处理应答。
服务器的应答消息也包含头字段形式的报文信息。
。报文第一行是状态行,格式为 <HTTP版本号><状态代码><解释短语>
状态码是个三位数字码,分为四类:
。以2开头,表示请求被成功处理
。以3开头,表示请求被重定向
。以4开头,表示客户的请求有错
。以5开头,表示服务器不能满足请求
解释短语是对状态码的解释。
。报文还向客户返回几个头字段,如:
。STATUS CODE/REASON PHRASE
。DATE
。LAST-MODIFIED
。SERVER
。CONTENT _TYPE
。RETRY_AFTER:服务器太忙时返回这个字段
。WWW_AUTHENTICATE:当服务器的安全机制要求客户发送某中授权信息时使用该字段

。报文最后是实体信息,即客户请求得到的HTTP服务器上的资源内容。

HTTP的早期版本为HTTP/0.9,它适用于各种数据信息的简洁快速协议,但是其远不能满足日益发展各种应用的需要。但HTTP/0.9作为HTTP协议具有典型的无状态性:每个事务都是独立进行处理的,当一个事务开始就在客户与服务器之间建立一个连接,当事务结束时就释放这个连接。HTTP/0.9包含
Simple-Request&Simple-Responsed的报文结构。但是客户无法使用内容协商,所以服务器也无法返回实体的媒体类型。
  1982年,Tim Berners-Lee提出了HTTP/1.0,在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应,建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。其缺点是仍会发生下列问题:对用户请求响应慢、网络拥塞严重、安全性等。
  1997年形成的HTTP/1.1,也就是现在普遍使用的协议,在持续连接操作机制中实现流水方式,即客户端需要对同一服务器发出多个请求时,其实现在多数的网页都是有多部分组成(比如多张图片),可用流水线方式加快速度,流水机制就是指连续发出多个请求并等到这些请求发送完毕,再等待响应。这样就大大节省了单独请求对响应的等待时间,使我们得到更快速的浏览。
  另外,HTTP/1.1服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。当然,服务器端在发生连接中断时,会自动的重传请求,保证数据的完整性。
  HTTP/1.1还提供了身份认证、状态管理和Cache缓存等机制。这里,我想特别提一下关于HTTP/1.1中的Cache缓存机制对HTTP/1.0的不足之处的改进,它严格全面,既可以减少时间延迟、又节省了带宽。HTTP/1.1采用了内容协商机制,选择最合适的用户的内容表现形式。
  现在,很多地方都有用到的虚拟主机技术在HTTP/1.1中也可以实现。所谓的虚拟主机技术,就是同一主机地址实际对应多台主机。通俗的讲,当你同时在一个网站申请两个主页时,用协议分析仪可以发现其实这两个主页对应的是同一个IP地址。这样用多台完全相同的机器形成WWW服务器就可以提高处理的吞吐量。
  传统的解决方案是改造域名服务器使其可以根据一定的算法将同一域名解释成不同的IP地址。分别对应虚拟主机的每台机器,其缺点是要求每台机器占用完全独立的IP地址,这与IP地址的缺乏是相矛盾的。
  HTTP/1.1提供的解决方案在HTTP协议自身中加入了指定不同主机的功能,从而多台主机可以共享一个IP地址,既提高了性能又便于管理。
  因为HTTP/1.1是Internet现行的标准协议,这里详细介绍其相关语法。
  首先,HTTP/1.1格式可写为:
[img:8d94cc43ef]http://www.china-pub.com/computers/emook/0472/1.gif[/img:8d94cc43ef]

其中请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种:
  GET: 请求指定的页面信息,并返回实体主体。
  HEAD: 只请求页面的首部。
  POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
  PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
  DELETE: 请求服务器删除指定的页面。
  OPTIONS: 允许客户端查看服务器的性能。
  TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
  PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
  MOVE: 请求服务器将指定的页面移至另一个网络地址。
  COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
  LINK: 请求服务器建立链接关系。
  UNLINK: 断开链接关系。
  WRAPPED: 允许客户端发送经过封装的请求。
  Extension-mothed:在不改动协议的前提下,可增加另外的方法。
比如:
  GET /index.html HTTP/1.1
  Accept: text/plain /*纯ASCII码文本文件*/
  Accept: text/html /*HTML文本文件*/
  User-Agent:Mozilla/4.5(WinNT)
  说明浏览器使用Get方法请求文档/index.html。浏览器则只允许接收纯ASCII码文本文件和HTML文本文件,其使用的引擎是Mozilla/4.5(Netscape)。

  当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。现将5类状态码详细列出:
① 客户方错误
  100  继续
  101  交换协议
② 成功
  200  OK
  201  已创建
  202  接收
  203  非认证信息
  204  无内容
  205  重置内容
  206  部分内容
③ 重定向
  300  多路选择
  301  永久转移
  302  暂时转移
  303  参见其它
  304  未修改(Not Modified)
  305  使用代理
④ 客户方错误
  400  错误请求(Bad Request)
  401  未认证
  402  需要付费
  403  禁止(Forbidden)
  404  未找到(Not Found)
  405  方法不允许
  406  不接受
  407  需要代理认证
  408  请求超时
  409  冲突
  410  失败
  411  需要长度
  412  条件失败
  413  请求实体太大
  414  请求URI太长
  415  不支持媒体类型
⑤ 服务器错误
  500  服务器内部错误
  501  未实现(Not Implemented)
  502  网关失败
  504  网关超时
  505 HTTP版本不支持
  比如:(在《TELNET……》一文中用telnet登陆80端口,相同的方法用在HTTP/1.1中,会发现没有显示,下面补充说明之)
telnet www.fudan.edu.cn 80
HEAD / HTTP/1.1
host:www.fudan.edu.cn /*本行为输入内容*/
HTTP/1.1 501 Method Not Implemented
Date: Web, 01 Nov 2000 07:12:29 GMT /*当前的日期/时间*/
Server: Apache/1.3.12 (Unix) /*Web服务器信息*/
Allow: GET, HEAD, OPTION, TRACE /*支持的方法类型*/
Connection: close
Connect-Type: Text/html; charset=iso-8859-1/*连接的媒体类型*/

<!DOCTYPE HTML PUBLIG "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>501 Method
Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
head to /inde
x.html not supported.<P>
Invalid method in request head / htp/1.1<P>
<HR>
<ADDRESS>
Apache/1.3.12 Server at www.fudan.edu.cn Port 80</ADDRESS>
</BODY></HTML>
关于实体头部的内容还可以有:
Last Modified :请求文档的最近修改时间。
Expires :请求文档的过期时间。
Connect-length:文档数据的长度。
WWW-authenricate:通知客户端需要的认证信息。
Connect-encoding :说明有无使用压缩技术。
Transfer-encoding :说明采用的编码变换类型。

  随着Internet的发展,下一代的HTTP协议HTTP-ng已经在酝酿之中,它将会提供更好的安全性、更快的速度,其改进要点为:模块化强、网络效率高、安全性更好、结构更简单。

一般来说有GET、POST之类的。
你可以用嗅探器研究一下。
参考这里吧:http://networking.zju.edu.cn/wlxk/jczs/protocol/www2.htm

你想说什么?
希望采纳

超文本传输协议