最新WEB的发布过程.docx
- 文档编号:30530133
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:10
- 大小:228.18KB
最新WEB的发布过程.docx
《最新WEB的发布过程.docx》由会员分享,可在线阅读,更多相关《最新WEB的发布过程.docx(10页珍藏版)》请在冰豆网上搜索。
最新WEB的发布过程
WEB的发布过程
Web发布过程
一个Web服务器也被成为HTTP服务器,它通过HTTP协议与客户端通信。
这个客户端通常指的是Web浏览器。
1HTTP协议
HTTP协议是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数据的协议。
它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
它是一个请求、响应协议。
当客户端发送出一个请求,服务器响应这个请求。
HTTP运用可靠的TCP连接,通常用的80端口。
1.1HTTP协议特点
(1)HTTP协议是无状态的,同一个客户端的这次请求和上次请求没有对应关系,为了解决这个问题,基于HTTP协议的WEB程序引入Cookies来维护状态。
(2)HTTP协议承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的SSL。
HTTPS的端口号是443。
(3)在HTTP中,客户端总是通过建立一个连接与发送一个HTTP请求来发起一个事务,服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。
客户端与服务器端都可以提前中断一个连接。
1.2HTTP协议的组成部分
HTTP协议中包含浏览器对Web服务器的请求部分和服务器对浏览器的应答部分。
1.2.1客户端请求
一个客户端浏览器发送HTTP请求包含三部分:
(1)Method-URI-Protocol/Version方法-地址-版本
(2)Requestheader请求头
(3)Entitybody请求实体
Method:
每个客户端的HTTP请求可以是HTTP规范中制定的许多请求类型中的一种。
HTTP1.1支持七种类型的请求,它们是GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE。
其中GET与POST是Internet应用中经常用到的两种请求类型。
(1)GET方法:
提交的数据会放在URL之后,以?
分割URL和传输数据,参数之间以&相连。
当使用GET方法的时候,body是为空的。
GET提交的数据大小有限制(因为浏览器对URL的长度有限制)。
GET方式需要使用Request.QueryString来取得变量的值。
(2)POST方法是把提交的数据放在HTTP包的Body中。
OST方法提交的数据没有限制。
POST方式通过Request.Form来获取变量的值。
(3)GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。
URI:
完整地指定了Internet资源。
一个URI通常被解析为相对服务器的根目录。
这样,它应该总是一个‘/’前缀开始。
URI的基本格式为:
schema:
//host[:
port#]/path/.../[?
query-string][#anchor]。
1)Scheme:
指定低层使用的协议(例如:
http,https,ftp)。
2)Host:
HTTP服务器的IP地址或者域名。
3)Port:
HTTP服务器的默认端口是80,这种情况下端口号可以省略。
4)path:
访问资源的路径。
5)query-string:
发送给http服务器的数据。
6)anchor:
锚。
Version:
指的是HTTP请求所用到的HTTP协议版本。
Requestheader:
包含了客户端环境与请求实体的一些有用信息。
例如浏览器设定的语言、实体的长度等等。
每条请求头用回车换行符(CRLF)分开。
请求头域的种类主要有:
(1)Cache头域
1)If-Modified-Since:
浏览器端缓存页面的最后修改时间发送到服务器去。
2)If-None-Match:
和Etag一起使用。
3)Pragma:
防止页面被缓存,和Cache-Control:
no-cache作用一模一样。
4)Cache-Control:
指定Response-Request遵循的缓存机制。
(2)Client头域
1)Accept:
浏览器可以接受的媒体类型。
2)Accept-Encoding:
浏览器申明自己接收的编码方法,通常指定压缩方法。
3)Accept-Language:
浏览器申明自己接收的语言。
4)User-Agent:
客户端使用的操作系统和浏览器的名称和版本。
5)Accept-Charset:
浏览器申明自己接收的字符集
(3)Cookie/Login头域
1)Cookie:
将cookie的值发送给HTTP服务器。
(4)Entity头域
1)Content-Length:
发送给HTTP服务器数据的长度。
2)Content-Type:
网页文件的类型。
(5)Miscellaneous头域
1)Referer:
提供Request的上下文信息的服务器
(6)Transport头域
1)Connection:
连接是否关闭。
2)Host:
指定请求资源的Internet主机和端口号。
一个非常重要的空行分开请求头与实体,它标志着实体内容的开始。
1.2.1Web服务器的响应
一个HTTP响应也由三部分组成:
(1)Protocol-Statuscode-Description协议-状态-描述
(2)Responseheaders响应头
(3)Entitybody响应实体
状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response。
HTTP/1.1中定义了5类状态码,状态码由三位数字组成,第一个数字定义了响应的类别
(1)1XX提示信息-表示请求已被成功接收,继续处理
(2)2XX成功-表示请求已被成功接收,理解,接受
(3)3XX重定向-要完成请求必须进行更进一步的处理
(4)4XX客户端错误-请求有语法错误或请求无法实现
(5)5XX服务器端错误-服务器未能实现合法的请求
常见的状态码:
(1)200OK:
表明请求被成功的完成,所请求的资源发送回客户端。
(2)302Found:
重定向,新的URL会在Response中的Location中返回,浏览器会自动使用新的URL发出新的Request。
(3)304NotModified:
代表上次的文档应经被缓存了,还可以继续使用。
(4)400BadRequest:
客户端请求与语法错误,不能被服务器所理解。
(5)403Forbidden:
服务器收到请求,但是拒绝提供服务。
(6)404NotFound:
请求的资源不存在。
(7)500InternalServerError:
服务器发生了不可预期的错误。
(8)503ServerUnavailable:
服务器当前不能处理客户端的请求,一段时间
Web服务器应带的头域主要种类有
(1)Cache头域
1)Date:
生成消息的具体时间和日期
2)Expires:
浏览器会在指定时间内使用本地缓存
(2)Cookie/Login头域
1)P3P:
用于跨域设置Cookie,这样可以解决frame跨域访问cookie的问题。
2)Set-Cookie:
用于把cookie发送到浏览器.
(3)Entity头域
1)ETag:
和If-None-Match配合使用
2)Last-Modified:
用于指示资源的最后修改日期和时间。
3)Content-Type:
WEB服务器告诉浏览器自己响应的对象的类型和字符集。
4)Content-Length:
指明实体正文的长度,以字节方式存储的十进制数字来标识。
5)Content-Encoding:
WEB服务器表明自己使用了什么压缩方法压缩响应中的对象。
6)Content-Language:
WEB服务器告诉浏览器自己响应的对象的语言。
(4)Miscellaneous头域
1)Server:
指明HTTP服务器的软件信息。
2)X-AspNet-Version:
如果网站是ASP.NET开发的,这个header用来表示ASP.NET的版本。
3)X-Powered-By:
表示网站是用什么技术开发的。
(5)Transport头域
1)Connection:
用来保持和断开TCP连接。
(6)Location头域
1)Location:
用于重定向一个新的位置,包含新的URL地址。
1.3浏览器请求网页的过程
抽象的东西,难以理解,老感觉是虚的,所谓眼见为实,实际见到的东西,我们才能理解和记忆。
我用Fiddler追踪了访问山东大学主页的HTTP过程。
1.3.1请求特点
(2)当你在浏览器输入URL的时候,浏览器发送一个Request去获取的html.服务器把Response发送回给浏览器。
(2)浏览器分析Response中的HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。
(3)浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
(4)等所有的文件都下载成功后。
网页就被显示出来了。
2Web服务器工作流程
一个典型的Web服务器的工作流程图2-1所示:
图2-1Web服务器的工作流程
2.1自主开发嵌入式Web服务器(目前已经做完的工作)
自主开发嵌入式Web服务器的总体结构如图2-2所示:
2-2自主开发Web服务器
该嵌入式Web服务器针对山东大学嵌入式实验室自主开发的嵌入式数据采集网关中操作系统开发,在IAR编译下生成可执行文件。
其工作过程如下:
(1)端口号和外部命令行输入,启动服务后,进驻主循环。
(2)通过不断的接收请求以及处理请求,达到处理客户端请求的目的。
(3)当客户端发送请求时,服务器通过分析客户端请求信息,分析是否为”GET”请求,若为此请求,则获取请求的文件名,以及文件类型。
(4)根据不同的文件名及文件类型,调用不同的处理程序,这样就能处理静态页面请求。
2.2主要实现步骤
(1)开启Web服务之前,需要从Flash中获得IP地址以及端口号。
(2)获得端口号之后,先后调用socket、bind、listen系统调用开启Web服务器。
(3)开启Web服务器之后,进入不断循环过程,在此过程,调用accept系统调用,进入阻塞状态,等待客户端的连接请求。
(4)连接成功后,将获得与客户端通信的连接句柄,通过该句柄可以与客户端实现通信,使用该句柄获得客户端的请求信息。
(5)获得请求信息后,通过分析,获得客户端发起连接的目的。
客户端的请求信息以空格分开,关键信息在第一、二部分,第一部分为请求类型,比如"GET"、“POST”,第二部分是请求的具体内容,比如文件名及文件类型。
2.3目前已经实现的功能
(1)通过浏览器能访问嵌入式数据采集网关中的一副固定的静态图像。
(2)已经可以从串口摄像头获取连续图像传入到网关,但是现在不能通过浏览器进行连续获得。
2.4最近的主要工作
(1)完善自主开发的Web服务器,通过浏览器快速获取摄像头的连续图像。
(2)阅读GoAhead源代码,将其移植到嵌入式数据采集网关。
通过GoAhead服务器获取摄像头的连续图像。
2.5日后工作
(1)修改嵌入式数据采集网关操作系统的库函数,使其中的Socket在Server模式下能够支持多个连接。
(2)针对GoAhead服务器目前的不足,利用自主开发的Web服务器完善其不足。
2.6提取理论工作
(1)针对目前实验室的E-VLoc项目,研究基于HOG的特征提取算法。
(2)内存内URL压缩。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 WEB 发布 过程