【简介】利用Arduino和Coolpy设计网关 —— HTTP协议

原创 2016年05月31日 18:04:41

HTTP协议简介

每天,都有数以亿万计的JPEG图片、HTML页面、文本文件、MPEG电影、WAV音频文件、Java小程序和其他资源在因特网上游弋。HTTP可以从遍布全世界的Web服务器上将这些信息块迅速、便捷、可靠地搬移到人们桌面上的Web浏览器上去。
HTTP使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏或产生混乱。这样,用户在访问信息时就不用担心其完整性了,因此对用户来说,这是件好事。而对因特网应用程序开发人员来说也同样如此,因为这样就无需担心HTTP通信会在传输过程中被破坏、复制或产生畸变了。开发人员可以专注于应用程序特有细节的编写,而不用考虑因特网中存在的一些缺陷和问题。

1 Web客户端和服务端

Web内容都是存储在Web服务器上的。Web服务器所使用的是HTTP协议,因此经常会被称为HTTP服务器。这些HTTP服务器存储了因特网中的数据,如果HTTP客户端发出请求的话,它们会提供数据。客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据,HTTP客户端和HTTP服务器共同构成了互联网网的基本组件。
HTTP请求

2 统一资源定位符URL

URL描述了一台特定服务器上某个资源的唯一位置。它们可以很明确的说明怎样从一个固定、精确的位置获取资源。
URL释义

大部分URL都遵循一种标准格式,这种格式包含三个部分。

  • URL的第一部分被称为方案,说明了使用何种协议访问资源。通常是HTTP协议(http://)。
  • 第二部分给出了服务器的域名地址(比如,www.iCloud.com)。
  • 其余部分说明了是Web服务器上哪个资源(比如,/public/index.html)。

3 HTTP方法

HTTP支持多种请求命令,这些命令被称为HTTP方法。每一条HTTP请求报文都包含一个方法。此方法会告诉服务器要做什么(获取一个Web页面、运行一个网关程序、删除一个文件等)。
五种常见的HTTP方法:
五种常见的HTTP方法

4 状态码

每条HTTP响应报文返回时都会带有一个状态码。状态码是一个数字代码(三位),提示客户端请求成功与否或者是不是需要采取其他动作。
几种常见的状态码:
几种常见的状态码

5 报文

HTTP报文是由一行一行的简单字符申组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写’。图1-7显示了一个简单事务所使用的HTTP报文。
请求报文是从Web客户端发往Web服务器的HTTP报文,响应报文是丛服务器发往客户端的报文,除此之外没有其他类型的HTTP报文。HTTP响应和请求报文的格式类似。
HTTP报文由以下三个部分组成。

  • 起始行

起始行是报文的第一行,在请求报文中起始行用来说明要做些什么,在响应报文中起始行用来说明出现了什么情况。

  • 首部字段

起始行后面可以没有首部字段也可由多个首部字段。每个首部字段是一个键值对。首部用一个空行表示结束。

  • 主体

首部的空行之后就是报文主体,它是可选的,它可以使任何类型的数据。请求主体中装载了发送给Web服务端的数据。响应主体中则包含了返回给客户端的数据。起始行和首部都是结构化的文本形式,而主体中却可以包含任意的二进制数据。
请求报文与响应报文

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【简介】利用Arduino和Coolpy设计网关 —— 开源项目Coolpy

Coolpy API 官方文档:http://www.icoolpy.com/docs.html1. Coolpy简介Coolpy是一个开放的通用物联网服务平台,主要提供传感器数据的接入、存储和展现服...

计算机网络(谢)——第三章读书笔记4.5(内部网关协议OSPF)

内部网关协议OSPF: 使用IP数据报,而且数据报很短(这样不必分片) 优点: 更新过程收敛很快 基本特点: 1.向本自治系统所有路由器发送信息(洪泛法) 2.发送的信息就是与本路由器相...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Arduino开源智能家居DIY,网关教程(ZigBee)

(代码请点击下方原文链接) 这篇开始,我们就真正做《网关》升级版教程了,采用arduino+zigbee哦。arduino简单易学,zigbee自组网(如果不懂c语言,直接用就好,我们已经刷好自...

基于WIZ820io的以太网关(兼容XBEE、Arduino扩展)

这块开发板起名为“MAX1284”,使用ATmega 1284p, 以及一个基于WIZnet W5200的以太网模块,就能制作一个兼容Arduino的低成本以太网网关。   特点: ...

python学习——HTTP协议简介

在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以: HTML是一种用来定义网页的文本,...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)