TCP/IP模型
应用层 --主要用来存放应用程序的
传输层 -- TCP\UDP协议
网络层 --IP和端口
物理*数据链路 --以太网,atm协议
客户端给服务器发消息经历的步骤
1.打开浏览器,输入地址,浏览器会创建一个scoket,低层封装的TCP协议
2.连接到指定的计算机,通过Ip匹配到地址
3. 往socket写入信息
4. 关闭socket
服务器端流程
1.创建socket对象
2. 绑定socket和端口
3.监听端口
4.接受用户请求
5.通过输入流获取到数据
6.关闭socket
HTTP
http协议:超文本传输协议
html:超文本标记语言
http特点:1.遵求请求响应模型 ---只要发送请求成功,服务器必定会响应客户端
2.http是无状态的协议。 ---每次访问成功,服务器就断开连接,客户端socket.close() 下次再访问服务器就识别新的请求.
http处理流程
1.客户端和服务器建立连接,tcp三次握手
2.客户端发请求
3.服务器接受请求,处理响应
4.关闭连接
http请求
1.请求行 --主要定义了请求方法,get,psot。请求地址,http协议
2. 请求头 -- 头元素信息,告诉服务器客户端的一些信息
3.空行 发送回车符或者空格,目的在于区别请求头的消息体
4.消息体 post请求是通过消息消息体传递数据的
http响应
1.状态行:http版本和状态码
2.响应头:服务器告诉客户端,发生回来的数据格式, 服务器版本等等
3.空行 发送回车符或者空格,目的在于区别请求头的消息体
4.消息体:服务器响应回来的数据通过消息体传递
WEB服务器缺陷
Servlet程序
由Sun公司设计的用来处理动态的网页一种技术
1.WEB容器可以用来管理和运行servlet,而WEB容器一般运行在服务器类部
2.WEB容器给处于其中的组件提供了一个运行环境,使servlet和jsp程序直接和容器中的环境变量进行交互,开发中不必关注 其他系统问题。WEB容器主要由WEB服务器来实现。如:tomcat,weblogic,jboss
web容器和WEB服务器
在设计上两块是分开不同的概念,WEB容器管理servlet或者jsp.web服务器是运行程序的一个软件,但是一般来说web服务器就结合了web容器的功能,比如servlet,jboss
WEb容器是如何管理servlet或者jsp的(容器对于servlet的支持)?
1.通信支持 ---可以利用容器提供的方法,能够轻松让servlet程序和web服务器进行对话,那样的话我们就不用再创建socket,不用监听端口,在开发过程中不用关系容器是如何来调用servlet方法的,我们要关注业务。
2.生命周期管理 ----servlet程序他的生与死由容器来进行管理,容器会在相应的时候加载servlet,初始化servlet,调用方法处理请求,以及servlet销毁资源回收都是由容器来进行管理。
3. 多线程 -----容器会给每个servlet创建多线程程序,用户访问服务器的servlet创建线程,运行完了后线程被回收
4.Jsp支持 ---容器会自动处理jsp程序
5.安全性支撑 ---Javaweb应用程序经常需要一些访问的限制,容器就对web程序进行了安全性设置。 有些内容客户端是无论如何也无法访问的
Tomcat服务器目录结构
tomcat特点:开源,免费,非常小,效率高
bin:主要存放启动tomcat和关闭tomcat的脚本文件。
conf:存放服务器的各种配置文件
lib:主要用于存放tomcat运行所需的jar包。
logs:存放tomcat运行过程中的一些日志文件
temp:临时文件目录,服务器在运行分过程中会产生一些临时文件,就存放在temp文件夹中
webapps:主要存放应用程序的目录。
work:工作目录,主要存放jsp的各种运行产生的文件。
搭建tomcat的运行环境
依赖于jdk,jre。
、
WEB项目
javaWEB项目名称:
HTML,css,js,img,
WEB-INF(lib,classes,web.xml)
客户端能访问的内容是Java项目下面的HTML,css,js等,WEB-INF目录下面的类容,客户端无法访问,容器由安全性设置
lib包以后所有运行需要的jar包
classes:主要存放编译后的Java文件
web.xml:配置文件