回顾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. 无法生成服务引用(添加WebService)

    参考地址:http://www.52study.org/bencandy-120-1076-1.html 问题场景:.在工程中添加WebService,报错: 解决办法:  1.配置该服务引用 将下面 ...

  2. Java之路---Day11(接口)

    2019-10-25-23:22:23 目录 1.接口的概念 2.接口的定义格式 3.接口包含的内容 4.接口的使用步骤 5.继承父类并实现多个接口 6.接口之间的多继承 接口的概念 接口是指对协定进 ...

  3. aria2 https

    https://github.com/aria2/aria2/issues/361 ... and also make sure that aria2 was built with HTTPS sup ...

  4. aria2 cmd set chmod, and others..

    import 'package:flutter/material.dart'; import 'dart:io'; import 'dart:async'; import 'package:rxdar ...

  5. mysql配置临时日志(无需重启服务)

    use mysql; //指定日志的存储方式 SET GLOBAL log_output = 'TABLE'; //查询日志开启 SET GLOBAL general_log = 'ON'; sele ...

  6. Mysql慢查询日志以及优化

    慢查询日志设置 当语句执行时间较长时,通过日志的方式进行记录,这种方式就是慢查询的日志. 1.临时开启慢查询日志(如果需要长时间开启,则需要更改mysql配置文件) set global slow_q ...

  7. python检测远程udp端口是否打开的代码

    研发过程,把开发过程较好的代码收藏起来,如下的代码内容是关于python检测远程udp端口是否打开的代码,希望对各朋友有较大帮助. import socketimport threadingimpor ...

  8. Synchronized可重入锁通俗易懂的简单分析

    可重入锁概念: 当一个线程得到一个对象锁后,再次请求此对象时时可以再次得到该对象的锁的,这也证明synchronized方法/块的内部调用本类的其他synchronized方法/块时,时永远可以得到锁 ...

  9. linux下面查找文件夹名称

    其中如果查找redis开头的文件夹,可以输入 find / -name redis* -d

  10. 关于何时执行shiro AuthorizingRealm 里的 doGetAuthenticationInfo与doGetAuthorizationInfo

    1.doGetAuthenticationInfo执行时机如下 当调用Subject currentUser = SecurityUtils.getSubject(); currentUser.log ...