就是JavaWeb(零)——JavaWeb概述

1.Web概述

什么是web?

web在计算机网页开发中就是网页的意思,网页是网站中的一个页面。通常我们浏览网页时,看到的都是
一个一个的html格式的web页面,网页可以展示文字,图片,媒体等内容,而这些都是需要通过浏览器来
阅读的。

Web应用程序的工作原理?

Web应用程序大体可以分为两种,静态网站和动态网站。
早期的Web应用主要是静态页面的浏览,即静态网站。这些网站使用HTML描写,通常来说随着html代码的
生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。这些代码放在Web服务器上,用户使用浏览器通过HTTP协议请求服务器上的Web页面,服务器上的Web服务
器接受到用户的请求处理后,再发送给客户端浏览器,显示给用户。整个过程就像下图:

过程

而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。这些网站通常使用HTML和动态脚本语言(入JSP、ASP或者是PHP等)编写,并将编写后的程序部署到Web服务器上,由Web服务器对动态脚本代码进行处理,并转化成浏览器可以解析的HTML代码,返回给客户端浏览器,显示给用户。

值得一提的是:动态网页并非是那些带有动画效果的网页,而是指具有交互性、内容可以自动更新,并且内容会根据访问的时间和访问者而改变的网页。这里所说的交互性是指网页可以根据用户的要求动态改变或响应。由此可见,静态网页就像是老式的手机,只能使用系统自带的铃声和功能,而动态网页就像是现代的手机,可以自行添加/删除或者说更改铃声和其他一些设置。


HTTP

2,Web的发展历程

自从1989年由Tim Berners-Lee(蒂姆.伯纳斯.李)发明了World Wide Web以来,Web主要经历了3个阶段,分别是静态文档阶段(指代Web 1.0)、动态网页阶段(指代Web1.5)和Web2.0阶段。

① 静态文档阶段

处理静态文档阶段的 Web ,主要是用于静态 Web 页面的浏览。用户通过客户端的 Web 浏览器可以访问 Internet 上各个 Web 站点。在每个 Web 站点上,保存着提前编写好的 HTML 格式的 Web 页,以及各 Web 页之间可以实现跳转的超文本链接。
通常情况下,这些 Web 页都是通过 HTML 语言编写的。由于受低版本 HTML 语言和旧式浏览器的制约,Web 页面只能包括单纯的文本内容,浏览器页只能显示呆板的文字信息,不过这已经基本满足了建立 Web 站点的初衷,实现了信息资源共享。

随着互联网技术的不断发展以及网上信息呈几何倍数的增长,人们逐渐发现手工编写包含所有信息和内容的页面,对人力和物理都是一种极大的浪费,而且几乎变得难以实现。另外,这样的页面也无法实现各种动态的交互功能。这就促使了 Web 技术进入了发展的第二阶段——动态网页阶段

② 动态网页阶段

为了克服静态页面的不足,人们将传统单机环境下的编程技术与 Web 技术相结合,从而形成新的网络编程技术。网络编程技术通过在传统的静态网页中加入各种程序和逻辑控制,从而实现动态和个性化的交流与互动。我们将这种使用网络编程技术创建的页面称为动态页面。动态页面的后缀通常是.jsp、.php、和.asp等,而静态页面的后缀通常是.htm、.html和.shtml等。

③ Web 2.0 阶段

随着互联网技术的不断发展,又提出了一种新的互联网模式——Web 2.0。这种模式更加以用户为中心,通过网络应用( Web Applications )促进网络上人与人间的信息交换和协同合作。
Web 2.0 技术主要包括:博客( BLOG )、微博( Twitter )、维基百科全书( Wiki )、即时信息( IM )等。

系统架构

3.网络程序开发的体系结构

随着web2.0时代的到来,互联网的网络架构已从传统的C/S架构转变为更加方便、快捷的B/S架构,B/S架构大大简化了使用网络应用的难度,这种人人都能上网、人人都能使用网络上提供的服务的方法也进一步推到了网络的繁荣。

可以通过一个例子来理解C/S和B/S。
C/S比如就是一些桌面应用,例如qq这种运行在桌面的程序,服务端主要就是一个数据库,把所有业务逻辑以及界面的渲染操作都交给客户端去完成。
而B/S对应的就是我们的浏览器,把业务逻辑交给服务端完成,客户端仅仅只用来渲染界面和数据交换。

B/S架构带来了以下两个方面的好处:
(1)客户端统一使用浏览器,由于浏览器具有统一性,它不需要特殊的配置和网络连接,有效的屏蔽了不同服务商提供给用户使用服务的差异性。

(2)浏览器的骄傲胡特性使得用户使用起来非常简便,一通百通。服务端(Server)基于统一的HTTP协议,和传统的C/S使用自己不同的自定义应用层比简化了很多。使得服务器开发者可以采用相对规范的开发模式,这样可以大大节省开发成本,由于使用统一的HTTP,所以基于HTTP的服务器就有很多,如IIS、Tomcat等,这些服务器可以直接拿来使用,不需要服务开发者单独开发。不仅如此,连开发服务的通用框架和平台都可以直接拿来使用,只需要专注业务逻辑即可,也正因为B/S框架简化了服务器提供者的开发过程,也促进了更多的互联网服务出现。

CDN架构图:

CDN架构图

B/S网络架构概述

B/S网络架构从前端到后端都得到了简化,基于统一的应用层协议HTTP来交互数据,与大多数传统C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用的是无状态的短连接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能对每个用户的某一次访问一直保持这个连接。

基于HTTP本身的特点,目前的B/S网络架构大多采用CDN的架构设计(如上图),既要满足海量请求,也要保持快速响应,所以现在的网络架构会越来越复杂。

当一个用户在浏览器地址栏中输入一个URL时,将会发生很多操作。首先它会请求DNS把这个域名解析为对应的IP地址,然后根据这个IP地址在互联网商找到对应的服务器,向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。在服务端实际上还有很复杂的业务逻辑:服务器可能会有很多台,到底指定哪一个服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里;当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如CSS,JS或者图片)时又会发起另外的HTTP请求,而这些请求很可能会在CDN上,那么CDN服务器又会处理这个用户的请求,大体上一个用户请求会设计这么多的操作,每一个细节都会影响这个请求最终是否会成功。

无论网络架构如何变化,始终有一些固定不变的原则需要遵守。

互联网上的所有资源都要用一个URL来表示,URL就是同意资源定位符,如果你要发布一个服务或者一个资源到互联网上,让别人能够访问到,那么你首先必须要有一个在世界上独一无二的URL,不要小看这个URL,他几乎包含了整个互联网的架构精髓。

必须基于HTTP与服务端交互,不管你访问的是国内的还是国外的数据,是文本数据还是流媒体,都必须按照套路出牌,也就是都要采用统一的打招呼方式,这样人家才能明白你要的是什么。

数据展示必须在浏览器中进行,当你获得数据资源后,必须在浏览器上才能使其恢复原貌。

只要满足以上几点,基本上一个互联网应用就正确运行起来了,当然这中间包含了很多细节。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,036评论 1 32
  • Web应用程序 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。Inte...
    陈先森mansplain阅读 2,303评论 1 4
  • HTTP基本原理 URI、URL、URN(Uninform Resource) URI(Identifier):统...
    GHope阅读 2,016评论 2 26
  • Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列...
    拉风的老衲阅读 1,794评论 0 1
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 868评论 0 0