Java Web (一)

Java Web 工作原理

TCP/IP 协议

应用层:我们编写的程序位于应用层,应用程序和是TCP/UDP 打交道。 http/ftp
传输层:TCP/UDP
网络层:IP层
数据链路层*物理层:以太网,ATM ,硬件的接口

------------------物理传输介质----------------------

三次握手:
第一次:客户端发送信息(ACK = 0 (单方面的); SYN = 1(请求链接)SEQ(随机码))
第二次:服务器接到请求了:服务器回复:ACK = 1 ; SYN = 1,  SEQ+1 回复过去 通过随机码进行响应,来确定响应谁。   
第三次: 客户端回复
具体下图:
客户端                                  服务器(被动打开)
1.  -----------ACK=0,SYN=1,seq = x----------------->
2.  <----------ACK=1,SYN=1,ack = x+1  seq = y--------
3.  -----------ACK=1,seq = x+1,ack = y+1----------> (服务器就知道这个用户链接有效)

ACK:表示响应
SYN:表示建立连接
ack:表示确认码
seq:表示顺序码

client

1.创建socket()

2.连接指定的计算机。connect(); (ip/端口)

3.send():往socket写入信息。

4.关闭socket

Server:

1.被动创建Serversocket()

2.bind():绑定socket和端口号

3.调用listen() 监听端口

4.accept():接收客户端传递过来的内容。

5.读取字符

6.关闭

HTTP协议

解释http协议:

  1. 表示的超文本传输协议。是计算机网络通信中的一种规则,属于应用成协议。端口号是80. ftp是文件传输协议,端口是21。
  2. http遵循请求/响应模型:所有的通信都构造在请求响应模型中,客户端和服务器交换数据。
  3. http是一种无状态协议:客户机和服务器之间不需要建立持久的连接,通信完就断开。

当前http版本号: 版本号 1.1 (默认是一直保持连接的,访问一个url,发送多次请求,只依靠一个tcp连接就可以了。)

HTTP工作流程

  1. 客户端和服务器建立连接。new Socket()

  2. 客户端往服务器发送请求。

    a.请求行:请求的方法,http版本
    
    b.请求头:http头传递的元信息。告诉服务器客户端的一些信息
    
    c.空行:发送回车符或者空格,用来区分请求头和消息体。
    
    d.消息体:存放用户传输的内容。 只针对post请求。
    
  3. 服务器响应内容。

    a.状态行:http版本,状态码。
    
    b.响应头:包括了内容的描述,长度,时间戳,服务器的信息。
    
    c.空行:发送回车符或者空格。
    
    d.消息体:响应的内容。
    
  4. 服务器关闭连接,客户端解析服务器发送回来的内容。

Web服务器的缺陷

因为web服务器是被设计用来向客户端提供HTTP服务的,它只能向客户端提供静态的网页内容,不能创建动态服务器端内容。

解决方案一:CGI

解决方法用:CGI

优点:可以用多种语言编写。

缺点:每次访问都会创建一个进程。是多进程的。

java的解决方案

Servlet

采用Servlet与web容器设计来解决CGI效率的问题。会创建一个健壮的环境。

运行在web服务器或者应用程序上面的一个java程序,主要用于生成动态的内容。

是与平台无关的一个java程序。

Servlet : 是多线程的。

特点:

  1. 是常规的java代码,只是用了新的API,不涉及新的语法。
  2. 有一些不熟悉的重要语句。不属于j2se 属于单独的规范
  3. Servlet 对标准类(HttpServlet)进行了扩展
  4. Servlet 是没有main方法的。

Servlet的主要任务:
1. 读取客户端发送的显式和隐式的数据
2. 生成结果
3. 向客户端发送显式的数据(即文档)和隐式的数据(HTTP响应数据)

Web容器

什么是web容器:

Servlet受控于另外一个java应用程序,这个应用程序称为web容器。

Web容器负责管理和运行Servlet。

容器对Servlet的支持包括:

  1. 通信支持
  2. 生命周期管理
  3. 多线程支持
  4. jsp支持
  5. 处理安全性(限制哪些可访问和不可访问)

Web容器主要是用于给处于容器中的应用程序组件(Servlet,JSP)提供一个运行环境、是Servlet、JSP直接跟容器中的环境变量交互。这样,我们就可以把注意力放在Servlet的实现业务逻辑上。不必关注其他系统问题

web容器主要是由web服务器来实现的。

常见的web服务器:

  1. IIS —微软提供的
  2. Apache
  3. Tomcat —web容器
  4. Jboss —支持ejb(重量级框架)的容器
  5. weblogic —有分布式的功能

tomcat:

tomcat是源于apache 基金会里面的一个项目。它是一个优秀的web容器,又是一个http服务器。

特点:开源,稳定,高效,免费。


tomcat目录结构:

bin:存放启动和关闭tomcat的脚本文件

coaf:存放tomcat的各种配置

lib:存放的是服务器支撑的jar包

logs:主要存放日志文件

temp:存放临时文件

webapps:web应用的存放目录,外界能够访问的web应用程序。

work:工作目录 , jsp生成的代码。

javaweb工程的结构

工程名字

src : 存放代码



WebRoot :

    WEB-INFO :客户端无法访问

            lib:存放支撑项目的jar包

            classes:存放当前代码的编译文件

            web.xml :工程的配置文件

    html文件夹

    css文件夹

    js文件夹

    image文件夹
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值