HTTP 小书--笔记

http 是一个应用层协议,基于 TCP/IP 协议,实际上就是 TCP/IP 协议,只不过在其间传输的不是任意的二进制数据,而是 HTTP 规定好的数据包。数据发送是一个请求一个响应。

HTTP 引入
站点 example.com 上的 hello.html 页面,访问他,在获取 hello.html 资源的过程中,过程是这样的:
服务器找到需要的资源,打包如下信息给客户端,
客户端解析首行知道协议版本和状态码200,解析首部字段区如 Content-Type 可知是 html 文件,Content-Type 可知内容长度。

请求消息
请求消息由一个请求行,0到多个首部字段行,一个空行、消息主体构成。
橙色是请求行 蓝色是首部字段区):   
GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: example.com
Accept-Language: en-us
Accept-Encoding: gzip,deflate

请求行
声明使用的请求方法、资源、HTTP 版本。请求方法可以是 GET、POST、HEAD、PUT、DELETE、CONNECT、OPTIONS、TRACE 中的一个。
GET、PUT、DELETE 都是幂等操作,但 POST 不是。

PUT 和 POST 都可以用来创建和更新资源,但因为 PUT 是幂等的(重复执行 PUT 不会影响服务器状态), 可以用 PUT 来创建资源,POST 来更新

POST 可以用来新建,更新,删除但是满足 Restful 规范的话,除了上面的幂等的好处,还可以把操作意图表达在请求方法内,把操作意图从 URL 中分离出来。

CONNECT 方法,在当前 HTTP 连接已经建立的情况下,CONNECT 方法用来告知服务器,客户端想要和服务期间建立 SSL 连接。

消息主体
消息主体用来承载请求消息的数据,比如用 POST 来提交表单。表单数据可以打包在消息主体内,消息主体是可选的。

响应消息
响应消息由一个状态行、一个或者多个首部字段行、一个空行、消息主体构成。
(分别是 状态行首部字段行,空行, 消息主体):
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>

   <h1>Hello, World!</h1>

   </body>
</html>

状态行
由 HTTP 版本,状态码,状态描述文字构成。
状态码有五组:
* 200-299 成功。 指明客户端请求是正确的,并被成功执行。
* 300-399 重定向。指明客户端请求是正确的,不过当前请求资源的位置在别处,请再次定向你的资源位置,发起新的请求。
* 400-499 客户端错误。 指明客户端的请求是不正确的,可能是格式无法识别,或者URL太长等等。
* 500-599 服务器端错误。 指明客户端的请求正确,但是服务器因为自身原因无法完成请求。
* 100-199 信息提示。 这个系列的状态码只有2个(100,101)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值