一、建立HTTP传输的意义
HTTP是一种超文本的传输协议,服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。使用HTTP协议可以方便的将PC浏览器手工填表端口与单片机上传接口共用,可以有效的减少服务端的开发工作量。
二、HTTTP建立流程
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:
1.建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。
备注:在建立TCP的端口连接后,web端与服务器需要建立三次握手联机,才可以进行通信;
2.Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。常用请求的命令有:常用的HTTP请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;
3.Web浏览器发送请求头信息
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。
请求信息的内容包括:
GET / HTTP/1.1 //请求方法为GET,HTTP协议为1.1
Host: www.baidu.com //URL为www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 //用户代理,也就是浏览器了,显示了浏览器的详细信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 //服务器能够发送的文件类型text/html的意思是HTML文本文档类型,后面那些查文档去
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 //服务器能够发送的语言zh-cn为中文,后面那些查文档去
Accept-Encoding: gzip, deflate //服务器能够发送的编码格式为gzip,编码格式不符合浏览器会解释不了
Cookie: BAIDUID=AF6C346B14E94898933E5F858C63F889:FG=1; BDREFER=%7Burl%3A%22http%3A//news.baidu.com/%22%2Cword%3A%22%22%7D; H_PS_PSSID=2097_1464_2133_1944_1788 //cookie,服务器存储在客户端的信息,每次请求都会将服务器保存在客户端的cookie一并发送上服务器。
Connection: keep-alive //连接,keep-alive保持状态
Cache-Control: max-age=0 //随报文传送缓存指示cache-control max-age>0时 直接从游览器缓存中 提取max-age
4.Web服务器应答
客户机向服务器发出请求后,服务器会客户机回送应答,HTTP/1.1 200 OK,应答的第一部分是协议的版本号和应答状态码。
5.Web服务器发送应答头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。
HTTP/1.1 200 OK //HTTP版本 1.1 状态码200 原因短语OK
Date: Tue, 02 Apr 2013 04:27:50 GMT//响应的时间日期
Server: BWS/1.0 //服务器应用程序软件的名称和版本 BWS/1.0
Content-Length: 4271//响应的主体内容的长度为4271个字节
Content-Type: text/html;charset=utf-8 //响应类型为HTML文本,编码类型为utf-8
Cache-Control: private//缓存指示
Expires: Tue, 02 Apr 2013 04:27:50 GMT//实体不在有效,要从原始的源端再次获取此实体的日期和时间
Content-Encoding: gzip//对主体执行的编码方式为gzip
Set-Cookie: H_PS_PSSID=2097_1464_2133_1944_1788; path=/; domain=.baidu.com //设置cookie,path,domain都是cookie的信息(作用范围等等)
Connection: Keep-Alive//状态为保持连接
6.Web服务器向浏览器发送数据
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。
7.Web服务器关闭TCP连接
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接。
三、使用单片机显示网络传输技巧
1.因大部分的GPRS或WiFi支持域名解析,固使用单片机做HTTP协议传输时,不需要DNS解析。若使用有线网络传输,则需要外部服务器的协助来完成DNS的解析;
2.http传输协议默认的端口号为:80端口;
4.如果使用HTTP 1.0及以下版本,web服务器默认是短连接方式,在完成一次传输后就会主动断开,以保证网络资源的有效利用。所以单片机每次发送数据前都需要做TCP/IP连接;
5.HTTP超文本传输范例:
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Connection: Keep-Alive
四、HTTP测试方法
可以使用在线版的HTTP协议解析工具来进行相关数据的传输。
领取专属 10元无门槛券
私享最新 技术干货