一.前言
1.程序对比:
a.之前的程序:java桌面程序,控制台控制,socket gui界面。javase规范
b.现在和以后的程序:javaweb程序。浏览器控制。javaee规范
2.软件的结构:
(1).C/S (Client - Server 客户端-服务器端)
典型应用:QQ软件 ,飞秋,红蜘蛛。
特点:
1)必须下载特定的客户端程序。
2)服务器端升级,客户端升级。
(2).B/S (Broswer -Server 浏览器端-服务器端)
典型应用: 腾讯官方(www.qq.com) 163新闻网站(俗称:网站)
特点:
1)不需要安装特定的客户端(只需要安装浏览器即可!!)
2)服务器端升级,浏览器不需要升级!!!!
javaweb的程序就是b/s软件结构!!!
3.浏览器是什么?
(1)解析
浏览器就是一个Socket网络客户端,主要帮助用户请求网站服务器上的内容并且把服务器返回的内容渲染(绘制)为图形化内容
(2)浏览器的运行机制:
用户在浏览器中输入网址,这里假定输入的网址:
http ://www.baidu.com/index.shtml
运行步骤:
1)浏览器向DNS服务器请求www.baidu.com的IP地址;
2)然后浏览器向baidu服务器发出Socket请求“Get/index.shtml HTTP/1.1”等;
3)服务器把index.shtml的内容返回给浏览器,浏览器解析HTML内容绘制页面;
4)遇到图片则浏览器再次发出Socket请求获得图片内容,然后绘制图片;
5)遇到CSS,Js文件等就同样如此.
(3)浏览器如何查看源代码?
1).在浏览器右键-->查看源代码。是查看服务器直接返回的HTTP报文体,是无法看到动态声明的代码的
2).按F12进入开发者模式,(谷歌)在elements-->在HTML标签上右键-->copy
3.)火狐,进入firebug,进入HTML标签页,在HTML标签右键-->复制HTML
4.访问网站发生了什么?
(1)请求与响应:
前提:一个请求发出,一定有且只有一个响应返回
a.浏览器发送给服务器的叫做请求(Request)
b.服务器返回给浏览器的叫做响应(Response)
(2)网站的登陆流程
1).浏览器向服务器请求一个网页,服务器收到请求~解析请求,给予响应。浏览器收到响应,解析响应并显示网页
2).输入用户名密码后,浏览器会再次向服务器发出请求,并将用户输入的用户名密码发送给网站服务器,网站服务器让负责处理登陆请求的服务器程序来处理这个登陆请求。之后将判断结果返回给浏览器
总结:
上网就是从服务器向浏览器传送HTML格式描述的网页,每次请求都带回来新的页面(页面中的图片,JS,CSS等,并不在一次请求中,而是单独的多次请求)
(3)什么是请求处理响应?
短连接与长连接:
a.短连接:客户端只有向服务器发请求的时候才建立连接,服务器请求返回之后连接断开。由于客户端不是“占着茅坑不拉屎”,所以能够受理更多的客户端连接。由于每次请求都要建立连接。所以效率比较低。
b.长连接:客户端和服务器端长期保持连接。java-->mysql。效率高,因为不需要每次请求都建立连接。一台服务器能够承受同时连接的客户端数量有效。
服务器知道浏览器什么时候关闭吗?
除非浏览器请求,否则服务器无法主动向浏览器发送数据,因为浏览器和服务器之间是短暂的网络连接。所以服务器不知道浏览器什么时候关闭
二.服务器
1.什么是服务器:
从物理上来说,服务器就是一台PC机器。8核,8G以上,T来计算,带宽100M
2.服务器的分类: 引出web服务
(1)web服务器:PC机器安装一个具有web服务的软件,称之为web服务器
(2)数据库服务器:PC机器安装一个具有数据管理件服务的软件,称之为数据库服务器。
(3)邮件服务器:PC机器安装一个具有发送邮件服务的软件,称之为邮件服务器。
3.为什么要有服务器?
(1)不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
(2)WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,用户只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。
三.Web
1.web是什么?
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
2.web服务软件的作用
把本地的资源共享给外部访问。
3.Internet上供外界访问的Web资源有两大类:
a.静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
静态web资源开发技术
b.动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
动态web资源开发技术:Servlet,JSP,ASP,PHP等
4.常见的市面上web服务软件
(1)WebLogic: BEA公司的产品。 收费的。支持JavaEE规范。
(2)WebSphere: IBM公司的产品。收费的。支持JavaEE规范
(3)JBoss: Redhat公司的产品。收费的。支持JavaEE规范
(4)Tomcat: 开源组织Apache的产品。免费的。支持部分的JavaEE规范。(servlet、jsp。jdbc,但 ejb, rmi不支持)
5.JavaWeb是什么?
(1)在Java中,动态web资源开发技术统称为Javaweb
(2)就是服务器动态生成html给浏览器显示的技术