1.什么是Web开发
Web通信,指的是两台计算机通过网络进行资源文件共享活动,Web开发确保本次通信顺利执行。
2.Web通信过程中两台计算机之间角色
a.客户端计算机:用于发送请求
b.服务端计算机:提供共享资源文件
3.资源文件
理论上来说,计算机上所有的文件都是资源共享文件。
分类:
a.静态资源文件
定义:文件内容是固定的,不能随着请求变化而发生变化。
例子:图片 html doc xls
特点:服务端计算机直接将静态资源文件推送给客户端计算机,所有被共享的静态资源文件最终是在客户端计算机运行。b.动态资源文件
定义:文件内容可以根据用户提供需求变化而产生不同变化内容
例子:Java文件
特点:服务端计算机会调用执行动态资源文件,服务端计算机将动态资源文件的运行结果交给客户端计算机。
上图的例子,输入参数不同,产生的结果也不同。
4.WEB通信过程中,两台计算机如何进行通信
a.C/S结构通信方式:
介绍:
C:client,客户端计算机安装特定客户端程序,可以帮助客户端计算机向指定服务端计算发送请求。
S:server,在服务端计算机安装一种特定资源调度软件, 接收特定客户端程序发送请求,将请求需要资源文件推送回客户端计算机上客户端程序。
例子:微信 ,QQ, 所有大型网络游戏。
优点:不但可以有效的保护服务端计算机,还可以分摊服务端计算机工作压力。
缺点:增加客户获得服务的成本,增加服务端维护成本。
针对客户群体:个人用户
b.B/S结构通信方式:
介绍:
B:browser(浏览器): 可以帮助客户端计算机向任意服务端发送请求
S:server:在服务端计算机安装一种特定资源调度软件,可以接收所有浏览器发送请求。将请求的资源文件推送客户端计算机浏览器上。
优点:不会增加客户获得服务的成本,不会增加服务端维护的成本。
缺点:无法有效保护服务端计算机,无法通过客户端计算机分摊服务端计算机压力。
针对客户群体:企业用户
5.网络协议包
定义:用于包裹在网络中传输的二进制数据,网络协议包存在固定空间用于存放特定数据,便于接收方分析得到数据。
分类: FTP http
到目前为止B/S通信结构中,只使用http网络协议包。
6.Http网络协议包内部结构
a.Http请求协议包
①是浏览器在发送请求时,负责创建的
②是浏览器负责将请求信息,写入到请求协议包
③Http请求协议包内部自上而下有四层结构
【请求行】:{
url: 请求的资源文件地址
method: 浏览器采用的请求方式
}
【请求头】:{
浏览器希望获得资源文件类型(html/png)
浏览器希望获得资源文件内容依赖字符集
如果浏览器采用GET方式发送请求,本次关联请求参数需要保存在请求头
}
【空白行】:{隔离层}
【请求体】: {
如果浏览器采用POST方式发送请求,本次关联请求参数需要保存在请求体
}
空白行和请求体所有浏览器都不显示
b.Http响应协议包
①是在服务端计算机的资源调度软件准备推送文件时,负责创建的
②响应协议包内容可以由资源调度软件写入,可以由Java命令(response)写入
③Http请求协议包内部自上而下有四层结构
【状态行】:{状态码}
【响应头】:{
返回文件内容类型(doc,text,html,text/html)
返回文件内容依赖字符集,浏览器需要使用这个字符集
对接收内容进行解码
}
【空白行】:{ }
【响应体】:{
静态资源文件也可能是动态资源文件的运行结果(二进制形式)
}
http网络协议包内部结构图示:
7.客户端计算机上浏览器管理
a.如何命令浏览器向指定网站发送请求
①通过FORM表单命令<form action="http://www.baidu.com">
②通过超链接命令<a href="http://www.163.com">163.com</a>
③浏览器的地址栏对象window.location="http://www.sina.com"
b.请求方式(POST/GET)
①GET方式:
要求浏览器发送请求时,携带请求参数数量不能超过4K
要求浏览器将请求参数写入到请求头
要求浏览器将请求参数信息在地址栏上显示出来
要求浏览器对接收的资源文件必须缓存到内存(适用于静态资源文件)
②POST方式:
不会限制浏览器发送请求时,携带请求参数数量
要求浏览器将请求参数写入到请求体
要求浏览器将请求参数信息在地址栏隐藏
要求浏览器对接收的文件不能保存到缓存(阅后即焚,适用于动态变化内容如车票信息,股票价格等)
c.如何控制浏览器采用的请求方式
①让浏览器发送请求时,采用GET方式:
超链接标签命令,一定会要求浏览器采用GET
location对象,一定会会要求浏览器采用GET
FORM标签命令中method属性可以控制浏览器采用GET方式发送请求:<form action="http://www.163.com" method="GET">
②让浏览器发送请求时,采用POST方式:
设置FORM标签中method属性等于"POST"
d.如何命令浏览器在发送请求时,携带指定请求参数
①超链接标签命令,可以命令浏览器携带请求参数:<a href="http://www.baidu.com?uname=mike&age=23">百度</a>
②location对象,可以命令浏览器携带请求参数:window.location="http://www.baidu.com?uname=mike&age=23"
以上两种方式存在弊端。请求参数内容是固定,无法根据客户具体要求来改变。
③表单域标签可以接收用户输入的内容,作为请求参数内容
表单域标签分类: INPUT select textarea
表单域标签作为请求参数条件:
第一个条件:表单域标签必须声明在当前FORM标签内部
第二个条件:表单域标签必须声明name属性,这个属性作为请求参数名。
第三个条件: 针对checkbox和radio,只有被选中情况下,才可以作为请求参数
8.Http服务器
a.介绍:
①安装在服务端计算机上一种软件
②可以解析来自于浏览器发送的请求协议包
③调用服务端上的被请求的资源共享文件
④负责生成一个响应协议包
⑤负责将文件内容或者文件运行结果写入到响应体
⑥负责将响应协议包推送给当前浏览器
b.Http服务器分类
①德国SAP(最好)
②IBM: weblogic
③JBOSS
④ Apache: Tomcat(最差)
但是只有Tomcat是免费的,而且对于我们来说也已经足够,所以我们就使用Tomcat啦!
c.Tomcat介绍
①是一个由Java应用程序编写的资源文件调度器
②可以调用服务端静态资源文件和动态资源文件
③Tomcat负责生成响应协议包,负责将响应协议包推送到浏览器上
④Tomcat属于Apache
Tomcat安装非常简单,在其他小伙伴的博客中有详细的介绍,在此不再赘述。
d.Tomcat端口号
Tomcat端口号存储位置: Tomcat安装目录下/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
端口号:8080(可以自己更改)
e.网站
①全称: 网络中的资源站点
②作用:仓库,存储可以共享静态资源文件和动态资源文件
③文件管理:由Http服务器来调用内部共享资源文件
④本质:就是一个文件夹
f.网站分类
①静态资源网站:存储都是静态资源文件(图片、html)
②动态资源网站:存储是静态资源文件和动态资源文件
g.如何创建一个静态资源网站
①Tomcat安装目录/webapps/ 创建一个文件夹,这个文件夹就是网站
注意这个目录下下初始就已经有一些文件夹了,可以删除,也可以不删除,下面我们新建一个文件夹www.myweb.com:
②在网站存入静态资源文件
百度美女图片(老师我真的是在学习!),随便下载一张到此文件夹下面,以这张为例:
③启动Tomcat
打开命令行,跳转到安装目录下的bin目录下,输入startup,启动Tomcat
启动成功:
④我们扮演用户,通过浏览器向tomcat索要www.myweb.com网站中mm.jpg页面:
回车就可以看到美女啦!
h.动态网站结构
①src:存放Java文件
②web: 静态资源文件和配置文件
配置文件是WEB-INF/web.xml
i:指定Tomcat管理的网站
RUN—>Edit Configuration—>Tomcat通道(名字自己起就行)—>Deployment—>添加需要被Tomcat管理的网站(首先要在File->New->Moudle里选择Web Application创建一个动态网站)