web知识的梳理web系统的构架1.B/S vs C/S(Browser/server Client/Server)BS :用浏览器查看的应用程序 CS: 需要额外安装客户端的非单机版的应用程序比较:1.他们都是非常重要的计算架构2.在适用internet 、维护工作量等方面,BS比CS要强的多3.B/S 架构需要进行浏览器的兼容性测试,需要升级系统在不同的浏览器里面是否满足需求4.C/S架构需要进行系统的安装、升级与卸载测试,需要考虑不同的支持的平台5.C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。6.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,比C/S更强的适应范围,需要关注服务器的负载与性能测试典型的三层架构三层架构(3-tier architecture)通常意义上的三层架构就是将整个业务应用划分为:1>界面层(user interface layer)2>业务逻辑层(business logic layer)3>数据访问层(data access layer)接口介绍接口一直指的是应用程序架构中,用老提供标准数据输入和输出的方法和功能程序.主要包括:webservice,webapi ,普通api,soapapi RESTFul API等URL : Uniform Resoure Loactor,统一资源定位符,指的是网页的地址等.URL的格式schema :// host [ : port] path [query # fragment ]| 格式内容 | 描述 || -------- | ——————————————————|| schema | 模式,协议|| host | 主机名,域名,ip地址|| port |端口,若端口不是默认的,则需要显示写出来。http 80/https 443/ftp 21/20 || path | 资源路径,相对路径 || query | 查询字符串 || fragment | 片段。片段不会发送给服务器 |HTTPhttp协议(hyperText Transfer Protocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传送协议.它可以使浏览器更加高效,使网络传输减少.它不仅保证计算机正确快速的传输超文本文档,还确定传出文档中的那一部分,以及那部分内容首先显示(如<文本优先于图形>)HTTP 是一个应用层的协议,由请求和响应构成,是一个标准的客户端服务器模型http协议本身是一个无状态的协议.客户端只需要简单的向服务器端发出请求,客户端和服务器端都没哟必要记录彼此过去的行为,每一次请求之间都是独立的.会话机制 HTTP协议是基于TCP协议1.建立tcp连接2.发送请求3.回送响应4.断开tcp连接eg: 以在IE浏览器的地址栏中输入http://www.baidu.com/然后回车 1>浏览器从url中解析出,若为域名,则需要进行DNS解析 2>浏览器从url中解析出,省略的则为对应协议的默认端口 3>根据建立tcp连接 4>web浏览器发送HTTP请求,在请求中包含5>web服务器接收并处理请求,将请求的结构返回给web浏览器(回送http响应)
6>断开tcp连接并解析显示页面
TCP vs UDP
UDP:用户数据报协议,User Datagram protocol, 无连接服务
1,不需要事先建立连接,直接发送数据
2,每个报文都带有完整的目的地址
3,不保证报文传输的可靠性,可能丢包
TCP:传输控制协议,transmission control protocol,面向连接的服务
1,先建立连接在传输数据,之后再断开连接
2,数据传输过程中,数据包不需要携带目的地址
3,保证数据传输的可靠性
tcp三次握手 开始
tcp四次握手 结束
相关技术
1.web客户端
浏览器功能:发送HTTP请求,接受web服务器的响应并解析成web页面
浏览器的组成:
浏览器引擎:浏览器最重要或者说核心的部分是”rendering engine”,可大概译为”渲染引擎”,不过我们习惯称为”浏览器内核”.负责对网页的标记内容(例如HTML`XML`JavaScript`图片等)和格式化信息(例如CSS`XSL等)的语法的解释并渲染显示网页.
通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同内核的浏览器的渲染显示效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因
Trident(IE内核):该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。
Gecko(firefox内核,开源)
webkit(safari内核,chrome内核原型,开源):它是苹果公司自己的内核,也是苹果的safari浏览器使用的内核.webkit引擎包含WebCore排版引擎和JavaScriptCore解析引擎,
2.web服务器
Apache:在web服务器中,apache是纯粹的web服务器,经常与tomcat配对使用.它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器脚本代码(jsp/servlet).
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。 Apache是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。
Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此, 在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用以及它的可移植性等方面。
Tomcat:早期的tomcat是一个嵌入apache内的jsp/servlet解释引擎
apache+tomcat就相当于IIS+ASP. 后来的tomcat已不再嵌入apache内,tomcat进程独立于apache进程运行.tomcat已经是一个独立的servlet和jsp容器,业务逻辑层代码和界面交互层代码可以分离了.因此,有人把tomcat叫做轻量级应用服务器.
IIS:microsoft的web服务器产品为internet information server(iis),IIS是允许在公共intranet或internet上发布信息的web服务器,IIS是目前最流行的web服务器产品之一,很多著名的网站都是建立在IIS的平台上.ISS提供了一个图形界面的管理工具,称之为internet的服务管理器,可用于监视配置和控制internet服务.
IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器, 分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供 ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器
综上:apache是纯粹的web服务器,而tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的web服务器.
应用服务器
IBM WebSphere
WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理Internet 和 Intranet Web应用程序。这一整套产品进行了扩展,以适应Web应用程序服务器的需要,范围从简单到高级直到企业级。
WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
Oracle WebLogic
Oracle WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库, 还是提交服务、跨 Internet 协作,起始点都是 Oracle WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
Oracle WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。Oracle WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。Oracle WebLogic Server 的遵从 J2EE 、面向服务的架构,以及丰富的工具集支持,便于实现业务逻辑、数据和表达的分离,提供开发和部署各种业务驱动应用所必需的底层核心功能。
***************************************************************************
理解HTTP协议
基础概念:Http协议是一个属于应用层的面向对象的协议,由于其简捷`快速的方式,适用于分布式超媒体信息系统.
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式
2.简单快捷:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET`POST`HEAD.每种方法规定了客户与服务器联系的类型不同.由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快.
3.灵活:http允许传输任何类型的数据对象.正在传输的类型由content-type加以标记.
4.无连接:无连接的含义是限制每次连接只处理一个请求.服务器处理完客户请求,并受到介乎的应答后,即断开连接.采用这种方式可以节省传输时间.
5.无状态:HTTP协议是无状态协议.无状态是指协议对事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大.另一方面,在服务器不需要先前信息时它的应答就较快.>http事务:一次http请求对应一次http响应. http事务是独立的,不存在上下文关系.
每次http请求都是由两部分组成:
1>发送请求 http请求报文
2>回送响应 http响应报文
HTTP版本: HTTP/0.9 - - HTTP/1.0 - - HTTP/1.1 - - HTTP/2.0
HTTP/1.0:短连接
HTTP/1.1:持久连接
HTTP报文