解析HTTP协议

HTTP:超文本传输协议(HyperText Transfer Protocol)

HTTP是一种无状态的协议,意思是指在Web浏览器和Web服务器之间不需要建立持久的连接。

HTTP是遵循请求/响应(Request/Response)模型的。

HTTP处理流程:

建立连接

发送请求消息

一旦建立的TCP连接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将请求封装成HTTP请求,它包括请求行,请求头,空行,消息体。

回送响应信息

关闭连接


Web服务器的缺陷

只能向客户端提供静态网页内容

增加一个辅助应用生成动态页面


服务器端网页编程

建动态服务器端内容的过程

–CGI技术

–微软的ASP和ASP.NET技术

–基于Java的Servlet/JSP技术

CGI技术

CGI即通用网关接口(Common Gateway Interface)

最大优点是它可以用Shell、Perl、C、PHP、Python等编写

但是CGI技术也有缺陷:

每次请求就打开一个CGI进程,严重消耗服务器资源。极大地限制了一个服务器可以支持的并发 CGI用户数量 。

java的解决方案


Web服务器

Web容器负责管理和运行Servlet

容器对Servlet的支持包括

  • –通信支持
  • –生命周期管理
  • –多线程支持
  • –JSP支持
  • -处理安全性

Servlet

  • Servlet是常规的Java代码。代码中用了一些新的API,但是不涉及新的语法。
  • Servlet代码中有我们不熟悉的重要语句。Servlet不属于J2SE,它属于单独的规范。
  • Servlet对标准类(HttpServlet)进行了扩展。
  • Servlet没有main()方法。

Servlet主要任务

  • 读取客户端发送的显式和隐式数据
  • 生成结果
  • 向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据)

Servlet规范

规范只定义了一个容器必须实现的标准功能

Servlet容器有很多不同的实现

–Tomcat

–Jboss

–WebLogic

–WebSphere

–Oracle9i AS


Servlet与Web容器配合处理请求和响应

1)客户端向Web服务器发起一个HTTP请求。

2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。

3)Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。

4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。

5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。


Java Web应用程序的组成

  • 配置文件
  • 静态文件和JSP
  • 类文件和包

原文地址:

http://www.cnblogs.com/hellokitty1/p/4835408.html

Java Web工作原理的更多相关文章

  1. 第一章 Java Web工作原理

    一:在本章我们将学到如下的内容 >HTTP协议原理 >服务器端Web编程原理 >Servlet与Web容器 >Java Web应用程序的组成 >Tomcat介绍 一:1. ...

  2. Java Web工作原理(转载)

    知识要点: 1.HTTP协议 2.web服务器的缺陷及其解决方案 3.对Servlet的认识 4.Servlet的主要任务 5.web容器对Servlet的支持包括的内容 HTTP协议---(Hype ...

  3. HTTP协议和web工作原理

    本章学完之后能干什么? 要把 知识点学好,那就需要把它相关的周边知识点了解全面 HTTP协议是web学习的核心!!! 学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!! web学习直 ...

  4. [Java] SpringMVC工作原理之一:DispatcherServlet

    一.DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作.在看 Di ...

  5. Java虚拟机工作原理详解 (一)

    一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 javac YourClassNam ...

  6. C/S B/S 及WEB工作原理

     一.C/S B/S区别 (http://wenku.baidu.com/link?url=e8bxaqz_lYCXws6TlDRJEq1qsLumNTBhr3Es6eA1ZuhHhq9FZGbVgo ...

  7. Java虚拟机工作原理详解

    原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...

  8. Java虚拟机工作原理具体解释

    一.类载入器 首先来看一下java程序的运行过程. 从这个框图非常easy大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘其中.然后你在命令行中输入 javac YourClass ...

  9. web基础-web工作原理,http协议,浏览器缓存

    1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------- ...

随机推荐

  1. 项目中同一个页面引入不同的jQuery版本的不冲突问题

    在写项目的过程中,如果需要使用jQuery时,时长会遇到需要引入不同版本的jQuery,可能上一个负责该项目的人用到的是老版本的jQuery,而你去添加功能时用的是新版本的,这个问题很难避免掉,如果去 ...

  2. springboot文件上传问题记录

    最近做项目需要开发一个通过excel表格导入数据的功能,上传接口写好调试的时候遇到几个问题,记录一下. 报错1: 15:50:57.586 [[1;33mhttp-nio-8763-exec-8 [0 ...

  3. java连接mongodb数据库

    最近毕设需要用到这个数据库.然而又不会,没办法,只能上网学习学习. 记录一下java连接mongodb数据库的简单方法.这里只是记录一下学习.熟悉一下CURD方法. 但是毕业用到的是SpringBoo ...

  4. 配置NFS实现nginx动静分离

    案例子任务一.安装配置NFS服务器 步骤1:使用docker容器配置NFS服务器 启动centos容器并进入 docker run -d --privileged centos:v1 /usr/sbi ...

  5. reactor模式前序(二):NIO WEB服务器设计

    前文介绍了传统IO的WEB经典服务器 reactor模式前序:传统IO的WEB服务器设计 下面看看JAVA NIO的WEB服务器设计 NIO是基于事件驱动的,对于NIO来说,重要组件是Selector ...

  6. node获取请求参数的方法get与post请求

    1.get请求 get的请求参数是携带在url中的,因此需要引入url模块对请求进行解析,再使用url.parse()方法,get请求多用于页面跳转.表单等请求中,例如page页码.表单账号密码等 先 ...

  7. Beta冲刺——第六天

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...

  8. js概念和ECMAScript

    概念 ​ ​就是一门浏览器客户端的脚本语言 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎. 脚本语言,不需要编译,直接就可以被浏览器解析执行. 好处: ​ 可以增强一些用户的 ...

  9. PHP jquer网页打印插件 PrintArea

    <!DOCTYPE html> <head> <meta charset="utf-8"> <meta http-equiv=" ...

  10. 非root用户安装centos的jdk

    1. 下载linux的jdk到自定义目录(以下简称安装目录),解压. 2. 在安装目录下新建文件局部环境变量文件:bash_profile 内容为:(注意修改JAVA_HOME目录) export J ...