书名: 《TCP-IP详解卷3:TCP事务协议》
章节: 第13章 HTTP:超文本传送协议

    早在大学时代就想将《TCP-IP详解卷》I,II,III三卷好好的读完,工作了之后也一直没有
去读,现在做开发也时常会用到这些知识,经常是一知半解的,抽时间我会写一系列的读书
笔记,来帮助我及大家更好的学习与了解TCP-IP协议。

名词解释:
 超文本传送协议(Hypertext Transfer Protocol,H T T P )是万维网( World Wide We b,W W W,也简称为We b )的基础

协议说明:
    HTTP超文本专输协议,从1990年开始在WWW上广泛应用,是现今WWW上应用得最多的协议,目前的版本是1.1
    HTTP是应用层的协议,当你上网浏览网页的时候,浏览器和WEB服务器之前就会
通过HTTP在Internet上进行数据的发送和接收
    HTTP是一个基于请求/响应模式的、无状态的协议

HTTP协议请求:
 1) G E T请求,返回re q u e s t - U R I所指出的任意信息。
 2) H E A D请求,类似于G E T请求,但服务器程序只返回指定文档的首部信息,而不包含实
际的文档内容。该请求通常被用来测试超文本链接的正确性、可访问性和最近的修改。
 3) P O S T请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这是唯一需要在
请求中发送b o d y的请求。使用P O S T请求时需要在报文首部C o n t e n t - L e n g t h字段中
指出b o d y的长度。

HTTP协议头:
 
 |-------------------------------------------------------|
 |头名称                       | 请求? | 响应? |  主体?  |
 |-------------------------------------------------------|
  |Allow                        |            |             |    ●       |
  |Authorization           |  ●      |             |               |
  |Content-Encoding    |            |             |    ●       |
  |Content-Lenght         |            |             |   ●       |
  |Content-Type            |            |             |   ●       |
  |Date                           |  ●      |      ●   |              |
  |Expires                      |            |              |  ●       |
  |From                          |  ●      |             |              |
  |If-Modified-Since     |  ●      |             |              |
  |Last-Modified           |            |             |   ●       |
  |Location                    |            |    ●     |              |
  |MIME-Version         |  ●      |    ●     |              |
  |Pragma                      |  ●      |    ●     |              |
  |Referer                      |  ●      |             |              |
  |Server                        |            |    ●     |              |
  |User-Agnt                 |  ●      |             |              |
  |WWW-Authenticate |            |    ●     |              |
  |-------------------------------------------------------|
 
  关于头信息的详细解释参见 RFC2616 http://www.faqs.org/rfcs/rfc2616.html
 
HTTP响应代码
 服务器程序响应的第一行叫状态行。状态行以H T T P版本号开始,后面跟着3位数字表示
响应代码,最后是易读的响应短语
 |---------------------------------------------------|
 |响应代码|            说明          |
 |---------------------------------------------------|
 |  1yz   | 信息型,当前不用             |
 |---------------------------------------------------|
 |     | 成功                    |
 |  200  |  OK,请求成功               |
 |  201  |  OK,新的资源建立(post命令)        |
 |  202  |  请求被接受,但处理未完成        |
 |  204  |  OK,但没有内容返回            |
 |---------------------------------------------------|
 |        | 重定向;需要用户代理执行更多的动作    |
 |  301   |  所请求的资源已被指派为新的固定URL     |
 |  302   |  所请求的资源临时位于另外的URL       |
 |  304   |  文档没有修改(条件GET)           |
 |---------------------------------------------------|
 |        | 客户差错                 |
 |  400   |  错误的请求               |
 |  401   |  未被授权;该请求要求用户认证      |
 |  403   |  不明原因的禁止             |
 |  404   |  没有找到                |
 |---------------------------------------------------|
 |        | 服务器差错                |
 |  500   |  内部服务器差错             |
 |  501   |  没有实现                |
 |  502   |  错误的网关;网关或上游服务器来的无效响应|
 |  503   |  服务暂时失效              |
 |---------------------------------------------------|