Frank的专栏

从起源理解事物,就是从本质上理解事物。

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

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服务端的数据。响应主体中则包含了返回给客户端的数据。起始行和首部都是结构化的文本形式,而主体中却可以包含任意的二进制数据。
请求报文与响应报文

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiasike/article/details/51547942
文章标签: HTTP
个人分类: Coolpy
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭