HTTP是什么?

时间:2024-03-04 14:49:05
  • 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)可扩展标记语言
   它和HTML很类似,都使用的是尖括号的标签,不同的是XML允许你使用你自己组装的标签
<pet>
  <name>Jeffrey</name>
  <species>Giraffe</species>
</pet>
    • JSON(Java Script Object Notation)JS对象符号
     通常JSON和XML是二选一的,JSON的数据格式很类似于JavaScript的对象
{
  "pets": {
    "name": "Jeffrey",
    "species": "Giraffe"
  }
}