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的工作原理 讲述Tomcat是如何工作的
超全的Tomcat工作原理祥解!内有tomcat简介/server.xml配置/web.xml配置/tomcat管理/tomcat启动分析等内容.
tomcat工作原理
Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp...
模拟了tomcat的工作原理,用到了多线程,http协议 等等
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台...
更深入的了解tomcat服务器的运行机制 更好的了解底层技术实现。
How Tomcat Work 第一章 实例应用 书上的例子的实现
Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
tomcat的工作原理,从最简单的socket服务端,客户端开始,逐步扩展!最终手把手教你完成一个简单的servlet 容器。最终彻底搞懂tomcat
详细介绍了Tomcat的启动原理 对调试代码很有帮助
深入理解tomcat工作原理,剖析其工作的过程,tomcat各节点的作用
介绍了tomcat的工作机制及运行流程,包含线程池的说明
tomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docxtomcat工作原理.docx
够基础、够循序渐进,加上作者本身对tomcat的深入理解,所以行文中处处向读者传递着tomcat的设计思想,我想这才是大部分人研究tomcat所希望学到的
Tomcat组成及工作原理借鉴.pdf
tomcat深入剖析 tomcat原理,由浅入深;由老美所写,的翻译版;看完之后有种顿悟的感觉;tomcat深入剖析.pdf+源码(tomcat运行原理)
Tomcat 架构 原理