- HTTP是什么?
我们见过的大多数网站可能都是“WWW”开头的,但是一个完整的地址是这样的:http://www.baidu.com/
HTTP的全称是HyperText Transfer Protocol(超文本传输协议),超文本是一种带有链接的文本,而传输协议是一种获取一些东西从一个地方到另一个地方的规则,这些规则是为了传输页面到你的浏览器。
- 客户端和服务端的关系
我们可以使用HTTP去抓取互联网上的任意网页上的信息,这些网页是来着互联网上的其他计算机,而这些计算机就是我们所谓的服务器。
互联网上到处都是客户端和服务器,客户端请求一些资源,例如网页、文件等等,服务器储存了这些信息,当你生成一个HTTP请求,这请求将通过互联网找到那个可以执行该请求的服务器,然后服务器会发生一个响应返回给你。
- REST
REST(Representational State Transfer)是一种具体状态传输,事实上,客户端与服务器的关系是REST的先决条件。
那什么是状态传输呢?你可以通过点击链接穿梭在一个网站中,因此你就制造了一次次的状态传输,每次都将带你到下一个页面,这个页面也就代表了应用程序的下一个状态。
当一些东西遵循了REST的规则,那么我们就称之为RESTful
- RESTful API
API(application programming interface),是一种代码协议,它是一种特定的方法,用于一个程序与一个应用程序的交互
一个RESTful的API或者Web服务是要满足以下3点的:
-
- 客户端与服务器的分离
- 请求与请求之间是不保留状态的
- 使用HTTP和HTTP方法
- Request 请求
请求的四种动作:
-
- GET:从特定的源获取信息
- POST:发送新的信息去特定的源
- PUT:更新特定源的现有信息
- DELETE:删除特定源上的现有信息
HTTP请求的组成:
-
- request line:告诉服务器是哪一种请求正在发生和寻找的资源是什么
- header:发送给服务器的附加信息,例如是哪个客户端发出的请求
- body:在GET请求中可以是空的,在POST和PUT的请求中包含了数据
- Response 响应
一次对服务器成功请求的结果被包含在一个响应中,这个响应是服务器返回给客户端的一个消息。这个来自服务器的响应包含了一个3位数字的状态代码(HTTP Status Codes)。这些代码是由1、2、3、4、5开头的。(http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81)
五种状态代码:
-
- 1xx:服务器正在执行你的请求
- 2xx:服务器响应成功
- 3xx:这类状态码代表需要客户端采取进一步的操作才能完成请求,通常需要重定向
- 4xx:客户端错误
- 5xx:服务端错误
HTTP响应的组成:
-
- response line:包含了HTTP状态代码
- header:包含了关于服务器和这个响应的信息
- body:响应的内容
- 数据格式
-
- XML(Extensible Markup Language)可扩展标记语言
|
-
- JSON(Java Script Object Notation)JS对象符号
通常JSON和XML是二选一的,JSON的数据格式很类似于JavaScript的对象
|