0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HTTP和GET命令是什么

454398 来源:工程师吴畏 2019-07-31 09:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

当任何两个电子设备需要相互通信时,它们必须使用通用协议或消息系统。如果一个设备尝试使用协议A发送消息而另一个设备正在使用协议B,则这两个设备永远不能交换数据(他们会将对方的消息视为垃圾)。因此,为了使互联网正常运行,设备必须使用通用协议进行通信,这就是IP或互联网协议的用武之地。

IP本身相当复杂,由帧,标题,位置组成,等,但幸运的是,大多数互联网控制器,如以太网IC和Wi-Fi适配器自动处理协议。这通常意味着用户只需要发送简单的命令,例如“打开套接字到IP设备”和“发送此数据包”。

HTTP和GET命令是什么

UDP Internet协议

但是,IP只是通过打开发送器和接收器上的套接字来处理物理通信链路(因此可以传输二进制数据)。理解这一点的一种简单方法是将IP视为物理链接两个设备的系统(例如使用以太网电缆连接两台计算机),因此当一台设备发出两位数据时,另一台设备将看到相同的两台相同的数据位。要让两个设备了解这些位实际意味着什么,我们需要使用消息传递协议。虽然互联网上使用了许多协议,但最常见的协议称为HTTP。

HTTP或超文本传输协议定义了如何解释通过两个设备之间的套接字发送/接收的数据。 HTTP(HTTPS是加密的安全版本),是现有的每个网站上使用的协议,非常简单。但HTTP并不仅限于网站。我们也可以将它用于物联网应用,这就是你现在需要学习的原因!

为什么HTTP如此惊人

HTTP是一个了不起的协议,原因如下:

所有消息是ASCII文本格式(非常适合数据大小和易用性)

所有行都以car 返回换行符(0x0A 0x0D或\ r \ n)终止

所有消息都“按原样”并且根本没有掺假(即原始文本)

可以使用字符串数据类型在代码中轻松实现

当客户端(例如PC或平板电脑)想要打开网页(例如,index.html)时,客户端首先需要打开一个套接字才能连接到端口80上有问题的服务器。

在本文中,我们将使用The Gentleman Maker的MicroPython代码:All About Circuits上的IoT Teapotproject。这段代码不是HTTP,而是IP,它是我们的客户端和服务器连接在一起的。

第一行创建一个名为sock的套接字对象,第二行获取网站的IP地址我们想要连接到端口80(因为它可以动态更改),最后一行创建一个地址对象,包括服务器的IP地址和端口号。您需要更改的唯一参数是“iot.yourwebsite.co.uk”到您要连接的任何网站。

知道IP地址,是时候打开客户端和服务器之间的连接。使用下面显示的命令很容易做到:

如果一切按计划进行,您现在应该在客户端和服务器之间建立了链接。此时,您可以使用sock.send(此处为您的数据)通过套接字发送数据,但如果服务器不理解数据,则会响应错误代码。那么,让我们学习如何使用GET命令请求数据!

**注意:确保您通过套接字发送的任何数据都被编码为二进制格式,因为MicroPython中的套接字只发送二进制数据!

GET命令

GET是用于指令的命令请求网页或文件内容,例如.html,.htm和.txt。 GET消息至少包含三行(所有行都以回车换行符终止):

GET 《您想要的文件》 HTTP/1.1 \ r \ n

主持人:《网站域名》 \ r \ n

\ r \ n

第一行以GET,然后是需要的文件。例如,如果我们想要index.html文件,我们将用/index.html替换上面显示的文本。第二行是主机域,例如maker.pro,但不包括http或www。最后一行是一个空行,必须是空的!这表示消息结束,服务器将识别它现在需要处理GET请求。完整的消息和使其工作的代码如下所示。

HTTP响应

发送请求后,服务器将处理该消息,然后发送响应。响应将包含三个主要部分:

成功/错误代码

元数据

请求的文件内容

为了更好地理解响应内容,让我们看一下茶壶项目的GET请求。

成功/错误代码是以黄色突出显示的第一行,如果请求成功或失败,则通知客户端。此行上的第二个数字(在本例中为200)是响应代码,可用于确定是否出现错误(非常常见的错误代码为404,这意味着所请求的文件不存在)。所以让我们看看一些常见的错误代码。

200 - 好的 - 一切顺利:)

400 - 错误请求

401 - 未经授权的访问

403 - 禁止访问

404 - 未找到

408 - 请求超时

429 - 请求过多

500 - 内部服务器错误

502 - 错误网关

下一部分数据(以蓝色突出显示)是元数据,其中包括当前日期/时间,服务器类型,编码方法,数据类型和数据长度等信息。最后一块数据(以绿色突出显示)是所请求文件的内容。

POST命令

我们将看到的第二个命令是POST命令,它用于将数据发送到服务器。在处理需要上传传感器数据或命令以控制其他设备的物联网设备时,这非常有用。通常,POST用于将数据发送到php脚本文件,然后该脚本文件可以根据提交的数据的值执行操作。那么让我们看看我们如何将一些变量发送到php页面!

和以前一样,第一行有POST命令和我们发送的页面数据到。接下来的几行(以蓝色突出显示)是元数据,其中包括正在发送的内容类型及其大小(请记住,在内容长度之后需要有一个空行),最后一行是我们的数据发送。在这种情况下,php脚本将接收两个名为temperature(其值为10)和湿度(其值为20)的变量。

结论

这篇文章只是在HTTP权力的表面上擦除。通过在PHP中编码网站,添加登录页面以及了解错误代码,我们可以使任何支持互联网的设备从互联网获取信息并将数据上传到网站。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTTP
    +关注

    关注

    0

    文章

    538

    浏览量

    35558
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Mmc命令导致 TF 卡不可读,IO 错误,怎么解决?

    mmc-utils 软件包 http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git 里面的 mmc 命令,在星光板子执行后,会导致
    发表于 03-30 07:40

    1688厂家详情API(item_get_factory)调用全解析

    【摘要】1688厂家详情API(核心接口名:1688.item_get_factory)是阿里巴巴开放平台提供的核心B2B数据接口,专注于返回供应商工厂的基础信息、生产能力、资质认证等关键数据,数据
    的头像 发表于 03-27 14:21 159次阅读

    HTTP物联网网关是什么?有什么功能?

    HTTP物联网网关是连接物联网设备与云端平台的核心设备,它以HTTP协议为基础,实现设备与云端之间的数据交互,并具备协议转换、数据预处理、安全管理和设备管理等功能 。以下是详细介绍: 一、核心定义
    的头像 发表于 12-24 11:33 521次阅读
    <b class='flag-5'>HTTP</b>物联网网关是什么?有什么功能?

    HTTP通信网关是什么?有什么功能?

    的详细说明: 核心功能 协议转换(核心角色) 场景 :当客户端使用HTTP协议请求非HTTP服务(如FTP、数据库查询)时,网关作为“翻译器”将HTTP请求转换为目标协议(如FTP命令
    的头像 发表于 12-23 11:14 624次阅读

    大彩讲堂:VisualHMI-LUA教程-set_bit/get_bit函数应用

    set_bit/get_bit函数应用
    的头像 发表于 08-31 17:05 1010次阅读
    大彩讲堂:VisualHMI-LUA教程-set_bit/<b class='flag-5'>get</b>_bit函数应用

    Linux基础命令which详解

    在Linux系统中,which命令用于查找并显示指定命令的可执行文件路径。这对于系统管理员和开发人员来说是一个非常有用的工具,可以帮助定位命令所在的位置,确认命令是否已正确安装,并且能
    的头像 发表于 07-29 17:58 1058次阅读

    解析K8S实用命令

    前言: 作为运维工程师,掌握 Kubernetes 命令行工具是日常工作的核心技能。本文将深入解析 K8S 最实用的命令,从基础操作到高级技巧,助你成为容器化集群管理专家。
    的头像 发表于 07-24 14:07 1008次阅读

    一文掌握Linux命令

    作为一名运维工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技能。本文将从实战角度出发,系统梳理运维工程师必须掌握的Linux命令,并结合实际场景
    的头像 发表于 07-22 15:23 729次阅读

    PLC通过智能网关做HTTP协议通讯,先取得token后再提交获取JSON格式的数据文件

    文件的字段与PLC寄存器地址等参数即可。 智能网关IGT-DSER支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端,支持多设备同时接入智能网关,对接局域网
    的头像 发表于 06-17 11:28 938次阅读
    PLC通过智能网关做<b class='flag-5'>HTTP</b>协议通讯,先取得token后再提交获取JSON格式的数据文件

    SSH常用命令详解

    SSH常用命令详解
    的头像 发表于 06-04 11:30 2189次阅读

    如何使用Traceroute命令

    以下是如何使用 traceroute 命令的详细指南,包括其语法、选项和实际示例。
    的头像 发表于 06-04 11:28 2530次阅读

    Docker Volume管理命令大全

    Docker Volume管理命令大全
    的头像 发表于 05-28 17:14 1088次阅读

    不用联网不用编程,PLC通过智能网关快速实现HTTP协议JSON格式与MES等系统平台双向数据通讯

    智能网关IGT-DSER支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端。作为客户端通讯时将JSON文件提交给HTTP的服务端, 如果服务端有返回的JSON,网关
    的头像 发表于 05-13 14:40 1417次阅读
    不用联网不用编程,PLC通过智能网关快速实现<b class='flag-5'>HTTP</b>协议JSON格式与MES等系统平台双向数据通讯

    基于RK3576开发板的http/https通讯

    主要区别在于HTTPS需要CA证书、使用加密传输,且端口号通常为443,而HTTP为80。HTTP/HTTPS通讯中,客户端发送请求报文,服务器返回响应报文,请求方法常见有GET和POST。URL(统一
    的头像 发表于 05-10 11:24 2006次阅读
    基于RK3576开发板的<b class='flag-5'>http</b>/https通讯

    Linux常用命令大全

    Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任务,如管理文件和目录、操作进程、网络通信、软件安装等。
    的头像 发表于 05-03 18:08 2042次阅读