回顾tomcat

Tomcat是Apache软件基金会(Apache Software Foundation)的一个顶级项目,由Apache, Sun和其他一些公司及个人共同开发,是目前比较流行的Web服务器之一.作为一个开源的,小型的轻量级应用服务器,Tomcat深受广大程序员的喜爱,具有占用系统资源少,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能; 而且它还在不断地改进和完善中, 任何一个感兴趣的程序员都可以更改它或在其中加入新的功能.

虽然Tomcat易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块.这些功能模块密切合作,各司其职,构成了Tomcat的核心结构. 作者从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐步深入,逐一剖析Tomcat的基本功能模块,并配以....略

--节选<深入剖析Tomcat>

Java Web 服务器的运行
Web服务器也称为超文本传输协议 (HyperText Transfer Protocol, HTTP)服务器, 因为它使用HTTP与其客户端(通常是Web浏览器)进行通信,

基于Java的Web服务器会使用两个重要的类: java.net.Socket 类和 java.net.ServerSocket 类, 并通过发送 HTTP 消息进行通信.

HTTP

HTTP允许Web服务器和浏览器通过Internet发送并接收数据,是一种基于"请求-响应"的协议.

客户端请求一个文件,服务器对该请求进行响应. HTTP使用可靠的TCP连接, TCP协议默认使用TCP 80端口.

HTTP协议的第一个版本是HTTP/0.9, 后来被HTTP/1.0取代,随后 HTTP/1.0 又被当前版本 HTTP/1.1取代.

HTTP/1.1定义于 RFC (Request for Comment,请求注解) 2616中... 可以从

http://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf 下载

注意: 本节简单介绍HTTP1.1 , 目的是帮助你了解Web服务器应用程序发送的消息

在HTTP中,总是由客户端通过建立连接并发送HTTP请求来初始化一个事务的. Web服务器端

并不负责联系客户端或建立一个到客户端的回调连接. 客户端或服务器端可提前关闭连接.

例如,当使用Web浏览器浏览网页时, 可以单击浏览器上的Stop按钮来停止下载文件,这样就

有效地关闭了一个Web服务器的HTTP连接.

HTTP请求包含以下三部分:

- 请求方法 --- 统一资源标识符(Uniform Resource Identifier, URI) -- 协议/版本

- 请求头

- 实体

HTTP请求的示例如下所示:

HTTP响应

与HTTP请求类似, HTTP响应也包括三部分:

- 协议 -- 状态吗 -- 描述

- 响应头

- 响应实体段

下面是一个HTTP响应的示例:

HTTP响应头的第一行与HTTP请求头的第一行类似. 第一行指明了使用的协议是HTTP/1.1

请求发送成功(状态吗200表示请求成功), 一切都正常执行.

Socket类

套接字是网络连接的端点, 套接字使应用程序可以从网络中读取数据,可以向网络中写入数据.

不同计算机上的两个应用程序可以通过连接发送或接收字节流. 以此达到相互通信的目的.

为了从一个应用程序向另一个应用程序发送消息, 需要知道另一个应用程序中套接字的IP地址和端口号.

在Java中, 套接字由 java.net.Socket 表示.

要创建一个套接字, 可以使用 Socket 类中众多构造函数中的一个. 其中一个构造函数接收两个参数: 主机名和端口号

public Socket (String host, int port)

其中参数host是远程主机的名称或IP地址,参数port是连接远程应用程序的端口号.

例如,想要通过80端口连接baidu.com, 可以使用下面的语句创建 Socket 对象:

new Socket ("baidu.com" , 80)

一旦成功地创建了Socket类的实例, 就可以使用该实例发送或接收字节流. 要发送字节流,

需要调用Socket类的getOutputStream() 方法获取一个 java.io.OutputStream对象.

要发送文本到远程应用程序, 通常需要使用返回的 OutputStream 对象创建一个 java.io.PrintWriter 对象.

若想要从连接的另一端接收字节流, 需要调用 Socket 类的 getInputStream() 方法,

该法会返回一个 java.io.InputStream 对象.

...略

https://blog.csdn.net/oqqHun123/article/details/96896978  <博客中制定的路径为linux根路径

Tomcat配置二级域名的分配与访问的更多相关文章

  1. xampp配置二级域名通过不同端口访问不同网站

    首先需要在xampp\apache\conf\extra\httpd-vhost.conf中写入配置的二级域名 <VirtualHost *:8081> // 该网站通过监测8081端口 ...

  2. tomcat配置通过域名访问项目

    tomcat配置通过域名访问项目,是修改conf/server.xml里面的配置信息实现.具体如下: (1)修改Connector节点的port属性值 <Connector port=" ...

  3. 使用nginx配置二级域名

    使用nginx配置二级域名 2018.11.21 11:51:17字数 613阅读 170 最近想把三个项目配在一个服务器上,于是想使用nginx配置二级域名实现. 1.域名添加解析 我的是阿里云的域 ...

  4. 利用nginx泛域名解析配置二级域名和多域名

    利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为 ...

  5. 【Tomcat】tomcat配置多域名和虚拟路径

    当我们用浏览器在访问网页的时候,如访问www.baidu.com,一般都认为会在DNS服务器上找这个域名对应的IP,然后向这个IP发送请求 并响应,其实在DNS服务器解析之前,本机会先在你的系统配置文 ...

  6. 通过Nginx为网站配置二级域名

    目录 配置域名解析 配置Nginx 重启Nginx 补充 需求:服务器上面运行多个项目:实现每个二级域名访问对应项目: 服务器:阿里云服务器:域名:阿里云注册: 配置域名解析 即配置DNS解析.一定要 ...

  7. Tomcat配置多域名 Alias

    在Tomcat配置多域名,目的是和apache相对应,实现多域名访问. 使用 < Alias></ Alias>,务必注意,使用的是首字母大写. 我刚开配置使用小写,如果hos ...

  8. windows+tomcat 7配置二级域名访问其他web程序

    1.在域名管理中做好二级域名的解析 2.在tomcat的server.xml中增加如下: <Host name="wx.ai77.cn" debug="0" ...

  9. Tomcat多个项目部署,通过Nginx反向代理分别配置二级域名的流程

    购买域名.示例:example.com 设置多个二级域名.如图: 配置tomcat文件: 修改tomcat/conf目录下的server.xml文件: 如下配置配置了3个容器,使用三个不同的端口. 请 ...

随机推荐

  1. python罗列oss文件

    # 列举文件 import oss2 from itertools import islice AccessKeyId = "your accesskeyid" AccessKey ...

  2. 【Maven基础入门】01 Maven的安装与环境变量的配置

    写在前面: Mavne,作为一个优秀的项目构建工具,虽说我们平时在使用的时候或多或少的会使用到它,但了解仅限于它能构建项目,然后其他的就不知道了. 以及仓库.POM父类文件.等等. 工欲善其事,必先利 ...

  3. CentOs7.3 搭建 SolrCloud 集群服务

    一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方式.C ...

  4. repodata创建本地YUM仓库

    参考一createrepo是linux下的创建仓库的软件包.create是创建的意思,repo是repository的缩写,是仓库的意思. yum(Yellow dog Updater,Modifie ...

  5. 关于.Net使用企业库访问MySql数据库

    关于.Net使用企业库访问MySql数据库 在网上看了很多又重写又加WebConfig中的内容,其实不用那么麻烦 企业库5.0访问MySql数据库只需要在Web服务器安装mysql-connector ...

  6. Java之路---Day05

    2019-10-19-21:09:31 面向对象的封装性 封装性 概念:封装就是将一些细节信息隐藏起来,对于外界不可见 面向对象封装性在Java中的体现 1.方法就是一种封装 public class ...

  7. 全网独发gensim中similarities.Similarity用法

    index = similarities.MatrixSimilarity(lsi[corpus]) # 管网的原文翻译如下: 警告:similarities.MatrixSimilarity类仅仅适 ...

  8. JS去除字符串中的中括号

    var str = '这是一个字符串[html]语句;[html]字符串很常见'; alert(str.replace(/\[|]/g,''));//移除字符串中的所有[]括号(不包括其内容) //输 ...

  9. HTTP协议学习总结

    一个web应用程序,往往是通过http协议进行前后端通信的.而作为一个web工程师,掌握HTTP协议因此也是Web开发必备的一项技能了,尤其是在工作了一定年限之后,更是深感该知识点的重要性.因此,将以 ...

  10. Docker04-镜像

    目录 镜像介绍 获取镜像 案例:获取 redis 5.0.0的镜像 查询本地镜像 搜索镜像 删除镜像 案例:删除redis:latest镜像 镜像加速 镜像介绍 镜像是Docker的三大核心概念之一. ...