书名: 《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 | 服务暂时失效 |
|---------------------------------------------------|