超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP是超文本传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
 
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
请求消息
请求报文格式如下:
  请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求消息的第一行为下面的格式:
  MethodSPRequest-URISPHTTP-VersionCRLFMethod表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
典型的请求消息:
  Host: download.microtool.de
  Accept: */*
  Pragma: no-cache
  Cache-Control: no-cache
  User-Agent: Mozilla/4.04[en](Win95;I;Nav)
  Range: bytes=554554-
响应消息
应报文格式如下:
  状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
 
响应消息的第一行为下面的格式:
  HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
  HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。Status-Code是一个三个数字的结果代码。Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:
  1xx:信息响应类,表示接收到请求并且继续处理
  2xx:处理成功响应类,表示动作被成功接收、理解和接受
  3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
  4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
  5xx:服务端错误,服务器不能正确执行一个正确的请求
典型的响应消息:
  HTTP/1.0200OK
  Date:Mon,31Dec200104:25:57GMT
  Server:Apache/1.3.14(Unix)
  Content-type:text/html
  Last-modified:Tue,17Apr200106:46:28GMT
  Etag:"a030f020ac7c01:1e9f"
  Content-length:39725426
  Content-range:bytes554554-40279979/40279980