CATaBLOG|一个RFID猫咪跟踪器

博客
项目描述 CATaLOG项目目的在于,追踪作者的两只猫,当他们出门或在户外时 ,他能看见哪只猫在外面待了多久,他们最喜欢出门的时间,如果一只猫在某一段时间走丢了,可以收到短信。 当前猫的状态和统计可以在 http://catalog.nermal.net看到。你也可以在Twitter跟踪猫咪。   系统设计将Arduino 微控制器结合一个便宜的RS232 RFID阅读器,使用Arduino Ethernet Shield 和一个Linksys WAP11路由器(作为一个无线网桥通过因特网发送数据)。 使用的标签是系在猫咪颈圈上标准的125Khz RFID 秘钥卡;RFID阅读器线圈是粘到猫咪通道瓣上。 项目页 测试RFID阅读器 给Arduino编程 将其连入网络并与Twitter对话 添加一个LCD Ignite Cardiff 对话 测试整个系统 增加一个外部的天线  
Read More

WIZ珍藏 #5: 鱼菜共生

博客
项目描述 鱼菜共生系统 通常需要把鱼和水培植物放在一个相容的环境中。我们已经有了解决方案 - 一个控制及监控系统 - 来自大量的开源元素和 创造性软件 来把它们集成到一起。     这个系统使用了一个Arduino Mega来连接大多数传感器。我们还写了代码让它每秒收集并读一次传感器数据,并用MQTT协议通过Ethernet发送过去。我们之所以选择MQTT是因为,这是一个可以满足我们需要的轻量级解决方案,可以找到用于Arduino和Raspberry Pi 的高质量库。   更多内容:http://hackaday.io/project/2190-aquapionics
Read More

基于W5500+STM32的SNMP协议应用

博客
概述 工具: PC  W5500EVB Net-SNMP软件包 编译环境:Keil4 &IAR 功能:通过网络管理协议SNMP及基本的控制命令实现简单的LED控制 一、W5500简介     韩国WIZnet公司生产的以太网控制芯片W5500整合了五层结构中的前四层,即物理层、数据链路层、网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈。开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法。全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的TCP/IP协议栈,便于产品实现网络化更新。以太网控制芯片W5500具有以下特点: 1、W5500支持硬件TCP/IP协议,包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE和以太网的PHY和MAC层,TCP/IP协议的硬件实现 2、支持8个独立的SOCKET同时工作,可同时工作在不同的工作模式; 3、支持高速SPI接口(SPI MODE 0,3),SPI的时钟最高可达到80MHz,极大地提高了网络通信的数据传输速率; 4、内部集成32KB存储器用于发送/接收缓存; 5、内嵌10BaseT/100BaseTX以太网物理层(PHY); 6、支持自动协商(10/100-Based全双工/半双工); 7、工作电压为3.3V,但I/O信号口可承受5V电压;   二、SNMP协议简介     SNMP:“简单网络管理协议”,用于网络管理的协议。 SNMP定义在IP协议上,使用无连接的UDP进行通信,SNMP支持5个基本的操作,分别是:GetRequest、GetNextRequest、SetRequest、GetResponse和Trap,这 5个操作来自各自的PDU结构。SNMP采用的是一个请求---应答的通信方式,Trap除外,Trap不需要应答。 在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储、及数据分析。被监管的设备上运行一个SNMP代理(Agent),代理实现设备与管理站的SNMP通信。管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。Agent在161端口监听传来的GetRequest、GetNextRequest和SetRequest命令,NMS在162端口监听传来的Trap。SNMP操作请求被封装成一个简单的UDP分组,接收端处理完请求后应答一个UDP的SNMP消息报文;一个请求对应一个应答就完成了一次操作。 SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了读操作;管理员需要向设备执行设置操作,所以SNMP提供了写操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了Trap操作。对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。 Get:读取网络设备的状态信息。 Set:远程配置设备参数。 Trap:管理站及时获取设备的重要信息。 下面是管理信息库的对象标识     对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。Internet(标号是1)在ISO 下的被标识组织的dod下,其标识符为{1.3.6.1}。Internet结点下面的第二个结点是mgmt(管理),标号是2。其标识为{1.3.6.1.2.1}或{Internet(1).2.1}。这种标识为对象标识符,即ObjectID ,简称OID。这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为{1.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往[email protected]进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。 三、Net-SNMP软件包     目前,开发SNMP的软件包有许多可以选择如SNMP++、AGENT++、NET-SNMP等。这里我们选用的是NET-SNMP。首先它是一个开源软件,其次基于C语言开发,便于移植。 net-snmp早先是在Unix平台下开发的。现可以移植到 Linux 、 Windows等多个平台。Net-snmp是一个代理端软件,但也提供管理端的查询工具。安装有两种方式:一是直接安装的二进制包,二是需要编译的源代码。我们在windows平台上安装的二进制包,在windows上的二进制包的安装就非常简单了,只需按提示就可完成。源代码和二进制包可从www.net-snmp.org网站下载,本文中所用的是net-snmp5.2.1.2的版本。之所以要先安装一个可运行的net-snmp系统,是因为我们开发程序运行环境的配置文件,是按照默认安装路径内部设定搜索的;另外,还可以利用其提供的配置工具来生成配置文件,利用提供的查询工具来测试程序。运行net-snmp之前先要进行环境设置,否则无法查询到结果。 四、系统设计   1. 硬件设计     下图是控制板实物图和LED内部接线图。MCU选用Cotex M3系列STM32F103芯片,以太网控制芯片选用WIZnet的W5500。程序以控制D3为例详细介绍SNMP协议的应用。D3和MCU的PA3相连,低电平有效。     2.程序设计     在分析细节代码之前,我们还是先来看一下主函数。在这里完成了对W5500EVB的初始化,并在主函数中加入简单的LED灯闪烁提示,同时也为SNMP协议启动做好准备,之后便进入SNMP协议操作进程。SNMP协议操作程序主要是snmplib和snmpdemo两个子函数。以下是系统基本的工作流程。     在snmplib程序中详细介绍了SNMP协议的工作流程。以下主要对报警报文的发送进行简单地分析。NMS网管平台在UDP模式下打开162端口监听传来的Trap,成功得到Trap后关闭SOCK_SNMP。 int32 SnmpXTrapSend(... ...) { .................. // Send Packet { uint8 svr_addr[6]; //UDPOpen(SOCK_SNMP, 162); socket(SOCK_SNMP,Sn_MR_UDP,162,0); ipToByteArray(managerIP, svr_addr); sendto(SOCK_SNMP, packet_trap, packet_index, svr_addr, 162); close(SOCK_SNMP); return 0; } }     Agent工作在UDP模式下,在SOCK_SNMP中打开161端口监听传来的GetRequest、GetNextRequest和SetRequest命令。成功打开端口以后,首先通过读取空闲接收缓存寄存器来判断是否接收到数据。如果接收到数据,就通过recvfrom()从具体的端口和地址把数据读出来。之后判断数据是否正确,若果不正确就返回再次读取,如果数据正确,就发送到网络端执行命令。。最后关闭SOCK_SNMP,执行下一次操作。 int32 SnmpXDaemon() { int32 snmpfd = 0; int32 fromlen = 0; int32 retStatus = 0; int32 len = 0; uint8 loopsnmpd = 1; uint8 svr_addr[6]; uint16  svr_port; UNUSED(snmpfd); UNUSED(fromlen); UNUSED(retStatus); //        UDPOpen(SOCK_SNMP, 161); socket(SOCK_SNMP,Sn_MR_UDP,161,0); WDEBUG("Start SNMP Daemon(Agent)…
Read More

WIZ珍藏 #4:门铃推送通知

博客
项目描述 如今,我们能看到多种多样的应用,都是与IOT和云服务器结合的。   我们也介绍一个IOT-Cloud 服务,当来访者按下你的门铃,门铃就通过邮件告知你。当你不在家时,它们可以为你提供便利。 IOT 由11步教程,演示视频和源代码构成。 云服务由PushingBox(推送箱)提供。 PushingBox(推送箱)是一个基于API 呼叫的推送通知软件。 一旦有请求,你可以通过推送,Tweet,或者邮件多种通知实时实现。 更多细节,参考: http://www.pushingbox.com/   文章已在Makezine中刊登了11步教程,演示视频及源代码。如果你对此产品有兴趣,请访问makine网站。 http://makezine.com/projects/notifying-doorbell-with-pushingbox/ 项目步骤: 1. 它是如何工作的? 2. 你需要准备的材料 3. 打开你的门铃 4. 将线插入... 5. 用...来测试连接 6. 硬件部分已完成... 7. 通过...点击服务 8. 现在,去我的... 9. 首先,用...添加一个动作 10. 你的场景已经创建。 11. 下载Arduino源码...  
Read More

WIZ珍藏 #3 : ArtRobot 气象机器人

博客
项目描述 ArtRobot 天气机器人 由Arduino Ethernet shield 和天气测量设备 构成。   你将通过 Twitter 已测量的的气象数据,得到自动通知。 Arduino Ethernet Shield 可以让Arduino 连接因特网。它是基于 WIZnet W5100 芯片的。 它通过气象气球获取检测测量数值,测量降水速度和风向,并通过网络立刻推送到Twitter上。 请参考 文章 链接,了解可测量气象数据的虚拟检测设备。 视频:http://tvpot.daum.net/v/J4NgKILvzj8%24 原文链接:http://robobob.co.kr/80
Read More

WIZ珍藏 #2:来自Elecrow的 WIZnet W5200 Arduino Shield

博客
项目描述 官方 Arduino Ethernet Shield 是由 Wiznet W5100 网络处理器驱动的,这已经有很长一段时间了。这个Shield和芯片,成就了Arduino世界中 每一个IP使能的网络项目。 WIZnet W5100芯片有很多有趣的特征,比如直接&间接内存访问,但是在SPI总线性能上有严重的限制。同样,W5100在硬件IPv4引擎中只支持4个端口。可增加的软件端口是无线的,通过端口0 在MACRAW中提供你自己的IP栈,但是这种方式不好弄。 W5100接口有两个主要问题。首先,SPI接口仅指定4MHz运行。其次,SPI接口只支持一个字节模式传输。 SPI速率4MHz的限制,意味着标准的16MHz Arduino板总线不能被高于SCK/4 的速度驱动。如果在规范内驱动W5100。20MHz板子,例如Goldilocks,规范内一定会掉到SCK/8. 同样,网络接口的每一位数据传入传出,W5100字节传输模式要求一个4字节的SPI总线处理。 W5100理论上(无法实现)的最佳传输速率,这意味着 4*8*4 = 128 系统时钟推移传送一个单字节数据!啊!太慢了。 该做点什么? 我猜想WIZnet肯定意识到了性能问题(更高性能的32位MCU跑一个更高系统时钟--而不是又慢又的8位AVR ATmega--的时候更明显)他们以及发布了W5200作为W5100的代替(特定SPI总线接口)。   WIZnet W5200 W5200 带来了一些新的性能,基于众所周知并被认可的W5100 IPv4网络引擎。下表是两个芯片的对比。 W5200 vs W5100 主要性能对比 W5200 更小更容易固定在板子上,对SMD结构有兴趣的,更容易私自焊接。更重要的是网络性能,W5200 具有两倍的用于IP包的Tx/Rx缓存,同步支持8个硬件IP socket。这些特征使W5200性能比W5100增加了一大块,值得替换。可以看到下图中两个芯片大小的对比,左边是Elecrow的W5200,右边是老的 DF Robot W5100 v1.0.   然而,W5200最大的提升还是在SPI总线接口方面。WIZnet在W5100上已经放弃了直接寻址机制,制造了W5200 专门SPI接口,运行速度高达80MHz时钟。有20倍的增加。 另外,W5200支持SPI突发模式传输。这个意思是,全部的Tx/Rx缓存(32K字节)都可以一次性读/写入。 在Arduino情形中,W5200可以驱动为SCK/2,AVR ATmega MCU上可达到的最大SPI速度,每一位都占一个SPI字节来传输。这意味着,我们可以达到 2 * 8 * 1 = 16的系统时钟传输速率,来传送一字节数据。 这意味着用于Arduino时,W5200要快8倍,用于 Goldilocks 20MHz板子,要比W5100 快16倍 -- 像猎豹一样快! 这里 有一个两个WIZnet芯片速率区别的实际分析。 易用 W5200易用,也易学。 WIZnet 已经提供了一些包含在Arduino IDE的W5200驱动文件。这些用于替换现存的W5100驱动文件 已经在IDE中,只需替换(或重写)就可以轻松满足W5200 SPI接口要求。 我等W5200好长一段时间了,想把它用到Arduino 兼容shield上,如此我就可以轻松使用了。突然发现市场上有两种,一个是中国的 W5200 Shield from Elecrow,另一个是 W5200 Shield from Wiznet 我决定买一些Elecrow的 W5200 Shield。他们看起来比WIZnet版本好很多,因为Eleccrow用了5V转3.3V的稳压芯片来确保板载 SD 卡的安全,已经设计使用了Arduino R3标准。 Elecrow W5200 板最关键且独特的特点是,放低的RJ45的使用,这样就使Ethernet shield与其他板子之间没有间隙。 阅读更多
Read More

WIZ珍藏 #1:来自Adafruit的IoT(物联网)打印机

博客
项目描述 我要介绍一个关于mini打印机的教程,这个打印机可以通过Arduino Uno 和 Ethernet Shield 实现物联网。   Adafruit 物联网打印机 有人说 Adafruit的学习页是非常好的学习材料。的确是这样!!我很幸运在Adafruit上找到这篇文章。 IoT打印机项目简介如下。   构建一个“物联网” 的mini 打印机,它将完全听命于你! 这是一个有意思的周末项目,还带一个漂亮的激光机切割箱。一经组装,这个小打印机就连接以太网,获取网络数据并打印在宽 2 1/4" 的收据打印纸上.我们写好的例程中将连接Twitter,根据你的要求搜寻API并检索、打印消息:你可以打印出 来自一个人,一个标签提到的词语等等! 一旦你让他工作,你就可以轻松的调整我们的例程来定制打印机。 这个项目不是很难,但是需要一些光钎焊,所以你需要点使用烙铁的经验。你也需要一套小的傻瓜螺丝刀来装配盒子。你最好还有些Arduino的经验,这样你就能感受到下载IDE和上传我们例程的快感了。 完成此项目,需要Arduino 和 Arduino Ethernet Shield.当你阅读Adafruit的Arduino Ethernet Shield产品页时,你会发现WIZnet W5100芯片。 板子挑选(用于 IoT打印机的Arduino Ethernet Shield) Arduino Ethernet Shield中的W5100 因为IoT打印机是在售的真实商品,制作方法完全可以用于DIY,这篇文章对于那些对Arduino Ethernet Shield例程感兴趣的人很有利用价值。   更多信息,请参考以下链接: – 在售商品 http://www.adafruit.com/product/717 – 教程 Internet of Things Printer
Read More

新华龙电子推出最新网络开发板(W5100&W5500方案)

博客
深圳新华龙电子有限公司近日推出了最新的网络开发板(F380-W5500&W5100-DK),集成了以太网专业方案提供商-WIZnet的W5100和W5500。利用全硬件TCP/IP协议栈的优势,从而使得C8051更加便捷,轻松地实现以太网功能。并且使用了W5100/W5500方案,能够大大节省C8051网络方面资源开销,且大幅提升了网络吞吐率及系统稳定性。并极大程度上解决并优化了8位MCU的联网问题。 硬件方面该开发板分为C8051,W5100,W5500和电源四个部分。用户可以根据实际需要评估C8051使用SPI驱动W5500或C8051使用BUS驱动W5100,2种方案。 软件方面深圳新华龙电子有限公司提供了丰富的代码资源供用户评估。   网络开发板布局: 芯片特性: 1、W5500全硬件TCP/IP协议栈以太网芯片 支持高速SPI总线(SPI模式0,3) 支持硬件TCP/IP协议:TCP,UDP,ICMP,IPv4ARP,IGMP,PPPoE 内嵌10/100Mbps以太网物理层 支持自动应答(全双工/半双工模式) 多种指示灯信号输出(全/半双工) 支持8个独立的端口同时连接 内部32K字节存储器作TX/RX缓存 支持休眠模式和网络唤醒 3.3V工作电压,I/O口可承受5v电压 极小巧的48P/N LQFP无铅封装   2、W5100全硬件TCP/IP协议栈以太网芯片 支持直接并行总线、间接并行总线和SPI总线 支持硬件TCP/IP协议:TCP,UDP,ICMP,IPv4ARP,IGMP,PPPoE 内嵌10/100Mbps以太网物理层 支持自动应答(全双工/半双工模式) 多种指示灯信号输出(全/半双工) 支持4个独立的端口同时连接 内部16K字节存储器作TX/RX缓存 支持ADSL连接 3.3V工作电压,I/O口可承受5v电压 80脚 LQFP无铅封装 点击:资料下载
Read More

Arduino Nano + WIZ550io = 简易上网

博客
我爱Arduino Nano - 这是一个很好外形小巧却功能齐全的Arduino Uno。然而,当我去将它连接到互联网,所有的干净利落小巧也消失在大尺寸的以太网盾底下了。 不过,我最近发现了一个更好的,更紧凑的方式给我的nano连接到互联网 - 通过使用WIZnet公司小巧得多(且更便宜)的WIZ550io模块! 如果你想方便连接,你可以找到一个可连接该模块和Arduino Uno的适配器板,但我想保持小巧的子板;通过我的Nano把它们直接连接在一起。然而,如果你没有适配板,你可以利用相同的方法用来直接连接到一个Uno板。 第一步:零件   这个教程,我使用了如下零件: 1个Arduino Nano(或者其他可兼容的) 1个WIZ550io模块(可以直接从WIZnet买到) 1个面包板(我使用30排的,就够大了) 5 m-m跳线 4 f-m跳线 步骤2:连接 注意:在连线前,最好首先将WebServer 例程下载到Arduino中,确保其上没有存在的固件,不然可能在你的WIZ550io上引起其他问题。 1. 将Arduino Nano和WIZ550io模块 放到面包板上。我将他们背对背摆放(见图),这样可以使USB供电线 和 以太网线 都容易连接。正如图中看到的那样,我的面包板还余出一排。 2. 连接9个引脚: Arduino - WIZ550io (5 M-M 跳线) 3v3 - J1.8 GND - J1.1 D2 - J2.5 (INT) D7 - J2.2 (RDY) D10 - J1.6 (SCS) (SPI 需要 4 F-M 跳线) spi.1 - J1.4 (MISO) spi.3 - J1.5 (SCK aka SCLK) spi.5 - J2.3 (RST) spi.4 - J1.3 (MOSI) 注意:spi.2 (VDD) - 不要连接!因为他是5v的,wiz 板需要3.3v的 请参考SPI图,看一下Arduino Nano上的引脚顺序。同时,这个板子本身应该是1号引脚有一个数字1.这应该是VIN引脚侧最外面的引脚。 步骤3:更新以太网库 WIZnet模块 使用了一个全新的芯片,需要更新一下库。不要担心,你的旧以太网板也一样可以用。 1. 下载WIZnet以太网库: https://github.com/Wiznet/WIZ_Ethernet_Library 这有一个按钮,底部标有“Download ZIP”,可以一键下载整包文件。 2. 复制以太网文件夹到Arduino库文件夹中 (在Mac上是Documents/Arduino/Libraries)。这将重写内置以太网库,这是Arduino app的一部分。如果你也需要使用其他以太网插板和模块,见“注意”中的内容。注意以太网文件夹有两个版本,这取决于你的ArduinoIDE的版本。我使用Arduino IDE版本是 1.0.6,所以我从WIZnet文件夹复制到以太网文件夹的时候,标记为1.0.x 3. 在Libraries/Ethernet/utility 文件夹中,打开w5100.h并只需修改一处 #define 行(其中3行)取消注释。我的WIZ550io是这样的: //#define W5100_ETHERNET_SHIELD // Arduino Ethernet Shield and Compatibles ... //#define W5200_ETHERNET_SHIELD // WIZ820io, W5200 Ethernet Shield #define W5500_ETHERNET_SHIELD // WIZ550io, ioShield series of WIZnet</p> 4.在同样的文件中,(可选) 也取消注释,这样板子就能用预先分配的硬件MAC地址了:…
Read More

一起学习HTTP协议

博客
网络出现后,带给人们生活上的改变是,我们可以随时随地在www网络浏览器网页上获取想要的信息。由于www内容丰富,浏览方便,也已经成为互联网重要要的服务。 那么超文本传输协议HTTP(Hypertext transfer protocol),是一种从www服务器传输超文本到本地浏览器的传送协议。简单地说,HTTP协议就是用户通过浏览器访问Web服务器的方式,并具备B/S(Browser/Server )结构。 今天就来与大家分享一下HTTP协议的学习。 在TCP/IP协议栈中的位置 HTTP协议承载于TCP协议之上,是一个应用层协议。有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: HTTP的请求响应模型 HTTP协议永远都是客户端发起请求,服务器回送响应。HTTP协议是一个无状态的协议,不会记得“上一个请求是什么”。 协议流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 1)建立连接。只要单击某个超级链接,HTTP的工作开始。 2)客户端发送请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3)服务器响应。其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4)连接断开。当服务器的响应信息显示到客户端的浏览器上,一次HTTP操作结束 那么,先来看一下建立连接的过程: 建立连接 HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。 请求消息格式 请求消息格式如下所示: 请求行 通用信息头|请求头|实体头 CRLF(回车换行) 实体内容 其中“请求行”为:请求行 = 方法 [空格] 请求URI [空格] 版本号 [回车换行] 请求方法 HTTP的请求方法常用如下几种: 1、GET:对服务器资源的简单请求,从服务器上获取数据。 2、POST:向服务器传送数据,主要是向服务器提交表单数据,尤其是大批量的数据。 3、HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。 那么,相对应的响应过程也与连接过程类似: HTTP响应 响应消息格式 HTTP响应消息的格式如下所示: 状态行 通用信息头|响应头|实体头 CRLF 实体内容 其中:状态行 = 版本号 [空格] 状态码 [空格] 原因 [回车换行]   HTTP的状态响应码 200段是成功,300段需要对请求做进一步的处理,400段表示客户端请求错误,500段是服务器的错误。 ① 客户方错误 100  继续:表示已收到请求的第一部分,正在等待其余部分。 101  交换协议:请求者已要求服务器切换协议,服务器已确认并准备切换。 ② 成功 200  OK:表示服务器提供了请求的网页。 201  已创建:请求成功并且服务器创建了新的资源。 202  接收:表示服务器提供了请求的网页。 203  非认证信息:服务器已成功处理了请求,但返回的信息可能来自另一来源。 204  无内容:服务器成功处理了请求,但没有返回任何内容。 205  重置内容:服务器没有返回任何内容。此响应要求请求者重置文档视图。 206  部分内容:服务器成功处理了部分 GET 请求。 ③ 重定向 300  多路选择:服务器可根据请求者选择一项操作,或提供操作列表供请求者选择。 301  永久转移:请求的网页已永久移动到新位置。 302  暂时转移:服务器目前从不同位置的网页响应请求,但申请人应当继续使用原有位置来响应以后的请求。 303  参见其它:请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 304  未修改:自从上次请求后,请求的网页未修改过。 305  使用代理:请求者只能使用代理访问请求的网页。 307  临时重定向:服务器目前从不同位置的网页响应请求,但请求者应当继续使用原有位置来响应以后的请求。 ④ 客户方错误 400  错误请求:服务器不理解请求的语法。 401  未认证:此页要求授权。 402  需要付费。 403  禁止:服务器拒绝请求。 404  未找到:服务器找不到请求的网页。 405  方法不允许:禁用请求中指定的方法。 406  不接受:无法使用请求的内容特性响应请求的网页。 407  需要代理认证:此状态码与 401 类似,但指定请求者必须授权使用代理。 408  请求超时:服务器等候请求时发生超时。 409  冲突:服务器在完成请求时发生冲突。 410  已删除:请求的资源永久删除后,服务器返回此响应。 411  需要长度:服务器不接受不含有效内容长度标头字段的请求。 412 …
Read More