当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 视频服务器 (二)
视频服务器 (二)
时间:2016-12-13作者:华清远见

CYG视频服务器之数据传输

从摄像头设备采集出数据以后,然后通过http协议传输给浏览器 。

首先简单介绍一下个人对浏览器工作原理的理解:

可以这样认为,当我们输入某个网站的域名的时候,例如www.baidu.com, 首先进行域名解析,然后向服务器发出一个页面请求 即一个html文件。浏览器解释html文件,看要完成的显示一个页面还差什么,然后继续向服务器发出请求,要求将差的东西传个浏览器。这也是为什么我们打开一个网站的时候,整个页面框架先显示,然后接着出来图片。整个流程都是基于http协议实现的,只要熟悉了http协议,一切都好理解。

下面介绍一下http协议,http协议可以概括为请求和应答两部分:

一、 HTTP请求

详细格式:

简单理解:

抓包分析如下:

1 .请求行

HTTP1.1目前支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。

GET 请求获取由Request-URI所标识的资源。

POST 在Request-URI所标识的资源后附加新的数据。

HEAD 请求获取由Request-URI所标识的资源的响应消息报头。

OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。

PUT 请求服务器存储一个资源,并用Request-URI作为其标识。

DELETE 请求服务器删除由Request-URI所标识的资源。

TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。

常见的是GET和POST,关于这两者之间的区别,网上资料很多,这里我们看一个实例:

A.GET方法提交数据

B.POST方法提交数据

两者的区别总结如下:

1)GET方法

GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如
         //127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB 从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大

2)POST方法

POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

那什么时候使用GET方法,什么时候使用POST方法呢?

个人认为,请求资源时,使用GET方法(例如请求一个html页面),提交数据时,就用POST方法(提交用户名和密码)。

从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准输入流中获取(写CGI程序时用到)。

2.请求头

请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。

Accept:image/gif.image/jpeg.*/*
        Accept-Language:zh-cn
        Connection:Keep-Alive
        Host:localhost
        User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
        Accept-Encoding:gzip,deflate.

3.请求正文

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:username=cyg&password=1234 在以上的例子的HTTP请求中,请求的正文没有内容。当然,在实际应用中,HTTP请求正文可以包含很多的内容。

二 、HTTP应答

详细格式

简单理解:

抓包分析如下:

这里比较重要的是content-type:表示携带数据的类型

状态码:

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.

HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

1XX 提示信息 - 表示请求已被成功接收,继续处理

2XX 成功 - 表示请求已被成功接收,理解,接受

3XX 重定向 - 要完成请求必须进行更进一步的处理

4XX 客户端错误 - 请求有语法错误或请求无法实现

5XX 服务器端错误 - 服务器未能实现合法的请求

看看一些常见的状态码 200 OK

常见的就是成功响应状态码200了, 这表明该请求被成功地完成,所请求的资源发送回客户端

就写这么多吧,如果想详细了解HTTP协议的人,可以参看这篇文

章://kb.cnblogs.com/page/130970/

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)