web服务器,通常也被称为HTTP服务器。web服务器通过HTTP协议与客户端进行通信,而客户端通常是web浏览器。基于Java的web 服务器,用了两个非常重要的类:java.net.Socket和java.net.ServerSocket。通信是通过HTTP消息来完成的。所以本章就以HTTP协议和两个非常重要的类开始。
HTTP协议,允许web服务器和浏览器在Internet上发送和接收信息。它是一个请求(request)和回应(response)的协议。客户端请求一些文件,服务器回应请求。HTTP使用可靠的TCP链接,TCP的默认端口是80。HTTP的最初版本是0.9、之后是1.0、还有1.1。
在HTTP 协议中,通常都是通过客户端来建立一个链接并发送一个HTTP请求来启动一个事务的,web服务器是不会和客户端联系或者是创建一个回调链接(服务器是不会主动和客户端联系的)。不管是客户端还是服务器都可以提前终止一次链接。
一个HTTP request请求由四个部分组成:
(1)Method-URI-Protocol/Version
(2)Request headers
(3)Entity body.
(4)空白行:在HTTP头和HTTP体之间
每一个HTTP请求可以使用HTTP标准中定义的多种请求方法中的任意一种。请求的方法有:GET、POST、HEAD、DELETE、TRACE、OPTIONS、PUT。GET和POST是在互联网中最常用的请求方式。
一个HTTP Response的组成类似与一个HTTP Request,Response体是response的html内容本身。
Socket
一个socket就是一次网络链接的终端,socket允许从网络上读和向网络上写数据。两个位于不同机器上的软件应用程序,可以通过建立链接,然后发送和接收字节流而实现彼此的通信,你需要知道对方应用程序的socket的ip和端口。在java中socket的表现形式是java.net.Socket类。
你可以用Socket类中的任意一个构造器,去创建一个socket,其中一个构造器。其中一个构造器,接收主机的名字和端口。
public Socket (java.lang.String host, int port);host是远程应用机器的名字或ip地址,端口是远程应用程序的端口,比如通过80端口去连接yahoo.com,我们可以建立如下Socket对象:
new Socket ("yahoo.com", 80); 一旦建立了socket对象,就可以用它来发送和
接收字节流。
去发送字节流,首先必须调用Socket 类的getOutputStream方法,去获得一个java.io.OutputStream对象。发送文本信息给远程应用程序,可以从返回的OutputStream对象中建立一个java.io.PrinWriter对象。
接收另一端返回的字节流,可以调用Socket class的getInputStream方法,返回了一个java.io.InputStream.
要从web 服务器上获取一个正确的response,需要发送一个符合http协议的请求.
ServerSocket class
Socket类代表了一个客户端的socket。ie,就是一个你可以随时创建的socket,不论是什么只要你想连接到远程服务。现在如果你想实现一个服务器,比如HTTP服务器,或者FTP服务器,你需要一个不同的途径。因为你的服务必须永远的健壮,它不知道客户端什么时候会试图链接服务器。为了让你的服务器在任何时候都处于待命状态。ServerSocket是一个 server socket的实现。server socket 的职责是等待客户端的链接请求。一旦服务器端的socket 得到一个链接请求,它就会创建一个Socket实例去处理和客户端的通信。
要建立一个server socket,我们需要用ServerSocket中提供的四个构造器中的一个。定义server socket监听的ip和端口。
一旦你拥有了一个ServerSocket, 你就可以让他不断地监听从被监测的机器上发来的请求。
分享到:
相关推荐
《深入解析Tomcat的工作原理》 一、简介与概览 Apache Tomcat是基于Java的开源Web服务器,它不仅能够运行Java Servlet,还能部署和执行Java Server Pages (JSP)技术,以及支持Java Web应用程序所需的其他标准协议...
总结来说,Tomcat的工作原理涉及了多个层次的组件协作,从接收请求到响应,每个环节都有明确的责任和功能划分。理解这些组件的运作方式有助于优化Tomcat的性能,解决部署和运行中遇到的问题,以及实现更高效的应用...
6. **src**: 放置Tomcat的源代码,对于开发者了解和修改源码很有帮助。 7. **webapps**: 默认的Web应用发布目录,包括示例应用。 8. **work**: 存储编译后的JSP类文件。 **三、Tomcat类加载机制** Tomcat采用了...
**Tomcat服务器工作原理** Tomcat是一款开源的Java Servlet容器,它是Apache软件基金会下的Jakarta项目的核心组件,主要用于部署和运行Java Web应用程序。Tomcat以其轻量级、高效和易于管理的特性,成为了许多...
**模拟Tomcat工作原理** Tomcat是一款开源的Java Servlet容器,它是Apache软件基金会下的Jakarta...通过阅读和分析这些代码,我们可以更深入地学习Tomcat的工作原理,这对于理解和开发Web应用服务器具有很大的价值。
【Tomcat工作原理深入详解】 Tomcat是一款广泛使用的开源Web应用服务器,尤其在中小型系统和并发访问量不高的场景中,其轻量级特性使其成为开发者首选。虽然Tomcat最初作为Apache服务器的扩展存在,但它可以独立...
### Tomcat工作原理详解 #### 一、概览 Tomcat是Apache软件基金会下的Jakarta项目中的一个开源的Web服务器和Servlet容器。它主要用来运行Java Web应用,并且支持Servlet和JSP技术。Tomcat的核心架构包括多个组件,...
《HowTomcatWorks》这本书详细解剖了Tomcat的内部运行机制,并以Tomcat4.1.12和5.0.18版本为例,一步步深入其工作原理。它首先提供了为各个组件创建简化版本的蓝图,帮助读者更容易理解每个组件的功能。随后,书中会...
**Tomcat工作原理详解** Tomcat是一款开源的Java Servlet容器,由Apache软件基金会开发并维护。它是Apache Jakarta项目的一部分,主要用于部署和运行Java Web应用程序。本文将深入探讨Tomcat的工作原理,包括其启动...
《Tomcat工作原理详解》 Tomcat作为一款广泛使用的开源Java应用服务器,其工作原理是许多开发者想要深入了解的关键。本文将从多个层面深入探讨Tomcat的运作机制,旨在帮助读者全面理解其设计思想和核心功能。 一、...
《How Tomcat Work》第一章主要围绕Tomcat服务器的实例应用展开,旨在帮助读者理解并实践Tomcat在实际开发中的工作原理。Tomcat是一款开源的、轻量级的应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP...
本篇文章将深入探讨Tomcat,一个广泛使用的Java Web服务器,通过翻译分析"How Tomcat Works"一书的前四章内容,来理解其工作机制。 首先,我们要了解Tomcat的基本架构。Tomcat是Apache软件基金会的Jakarta项目中的...
《Tomcat深入剖析》这本书是理解Apache Tomcat服务器工作原理的宝贵资料,它由美国作者撰写并被翻译成中文,适合各个层次的开发者阅读。通过深入学习,读者能够对Tomcat的内部机制有全面而深入的理解,从而更好地...
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
Tomcat作为一款广泛使用的开源Java应用服务器,其启动过程涉及了众多关键步骤和组件的协同工作。理解Tomcat的启动原理对于开发者来说至关重要,不仅有助于提升性能优化的能力,还能在遇到问题时进行有效调试。以下是...
深入理解tomcat工作原理,剖析其工作的过程,tomcat各节点的作用