WebSphere v4.0 的插件是如何处理HTTP请求的

WebSphere Application Server: 概述 了解编程模型,更深入地了解产品,然后快速入门。此图显示了一个应用程序服务器安装。在此处讨论与编程模型相关的部件。其他部件构成产品体系结构,独立于编程模型勾划的各种应用程序类型。请参阅。 阅读详情

http://www-900.cn.ibm.com/cn/support/nav/200202/p24.shtml

WebSphere Application Server V4.0x 版本中Web服务器和WebSphere应用服务器间使用了HTTP 1.1的传送(transport)来通讯,而版本4.0之前,使用的是OSE(Open Servlet Engine)协议。那么,WebSphere V4.0x的插件(plug-in)是如何处理HTTP请求的呢?

了解了插件对HTTP请求的处理模式,将有助于您部署应用的静态页面和动态页面,同时,当您遇到诸如无法访问所有的JSP和小服务程序(servlet)、无法访问特定的JSP和小服务程序等问题时,也有助于您定位问题并解决问题。

这篇文章中将对插件的处理模式加以描述。

当Web服务器接收到一个HTTP请求时,插件需要确认这个请求是否属于运行于WebSphere中的某一个Web应用。如果这个请求不应由WebSphere处理,插件返回给Web服务器一个代码告诉Web服务器去处理这个请求。如果这个请求应该由WebSphere处理,则插件需要确定相应的应用程序运行在哪个节点上,在克隆(clone)的情况下,还需确定应由哪个克隆来处理这个请求。

插件使用的规则在文件plugin-cfg.xml中配置,默认位置是<WAS_HOME>/config 。下面是一个简单的plugin-cfg.xml例子。

=========================================================================
<?xml version="1.0"?>
<Config>
<Log LogLevel="Error" Name="C:/WebSphere/AppServer40/logs/native.log"/>
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9080"/>
</VirtualHostGroup>
<ServerGroup Name="websphere/Default Server">
<Server CloneID="to0oee2t" Name="Default Server">
<Transport Hostname="websphere" Port="9080" Protocol="http"/>
</Server>
</ServerGroup>
<UriGroup Name="websphere_sampleApp/default_app_URIs">
<Uri Name="/servlet/snoop/*"/>
<Uri Name="/servlet/snoop2/*"/>
<Uri Name="/servlet/hello"/>
<Uri Name="/ErrorReporter"/>
<Uri Name="*.jsp"/>
<Uri Name="*.jsv"/>
<Uri Name="*.jsw"/>
<Uri Name="/j_security_check"/>
<Uri Name="/servlet/*"/>
</UriGroup>
<UriGroup Name="websphere_sampleApp/examples_URIs">
<Uri Name="/webapp/examples/*"/>
</UriGroup>
<Route ServerGroup="websphere/Default Server"
UriGroup="websphere_sampleApp/default_app_URIs" VirtualHostGroup="default_host"/>
<Route ServerGroup="websphere/Default Server"
UriGroup="websphere_sampleApp/examples_URIs" VirtualHostGroup="default_host"/>
</Config>
=========================================================================

当一个HTTP请求到达Web服务器时,插件在XML配置文件中查找路由(Route),一个路由由两个信息来确定,VirtualHostGroup 和 UriGroup 。我们以请求 http://localhost/servlet/hello 为例进行说明。

如果配置文件中存在 VirtualHostGroup 的定义,插件尝试将该请求的域名和端口与VirtualHostGroup 中定义的 VirtualHost 进行匹配。如果配置文件中不存在 VirtualHostGroup 的定义,插件将假定路由与所有的虚拟主机都匹配。本例中,由于HTTP请求的默认端口为80,所以请求的域名和端口为 localhost:80 ,与 <VirtualHostGroup Name="default_host"> 中定义的 <VirtualHost Name="*:80"/> 相匹配。

如果配置文件中存在 UriGroup 的定义,插件尝试将该请求的 URI 与 UriGroup 中定义的 URI 进行匹配。如果配置文件中不存在 UriGroup 的定义,插件将假定路由与所有的 URI 都匹配。本例中,请求的URI为 /servlet/hello ,与 <UriGroup Name="websphere_sampleApp/default_app_URIs"> 中定义的 <Uri Name="/servlet/hello"/> 相匹配。

如果该请求能够匹配到相应的 VirtualHostGroup 和 UriGroup ,并且相应的 VirtualHostGroup 和 UriGroup 同属于一个路由(Route)的定义,则请求将被发送到该 Route 定义中的 ServerGroup 来执行。本例中,相匹配的 Route 定义为:

<Route ServerGroup="websphere/Default Server"

UriGroup="websphere_sampleApp/default_app_URIs" VirtualHostGroup="default_host"/>

所以,该请求将被发送到 <ServerGroup Name="websphere/Default Server"> 去执行。

根据应用服务器是否被克隆了,ServerGroup 中可能定义有一个或多个服务器(Server),下一步就是确定该请求应被发送到ServerGroup中的哪一个服务器。

首先,插件检查该请求的会话亲缘性(session affinity)。如果该请求具有会话亲缘性 cookie ,说明这个会话在以前的请求中已经被分配到了某一个特定的应用服务器。遵从 Servlet 2.2 的规范:"Within an application that is marked as distributable, all requests that are part of a session can only be handled on a single VM at any one time",当会话已经被分配了一个服务器时,这个请求必须发送给同一个服务器。插件在报头或URL中查找名为 JSESSIONID 的cookie ,如果 JSESSIONID 存在,并且包含有 CloneID ,而这个 CloneID 与 ServerGroup 中定义的某个服务器(Server)的 CloneID 相匹配,则这个请求将被发送到该服务器。

如果会话亲缘性(session affinity)没有被建立起来,将根据负载均衡的规则给这个请求和会话分配一个服务器。默认规则是轮循(Round Robin)。轮循的起始点是随机的,也就是说第一个服务器是随机抽取的,然后开始循环。所以对于多进程的Web服务器,不同的进程分别随机抽取其起始点,并不会都把第一个请求发送给同一个应用服务器,保证了应用服务器的使用均衡;另一方面,由于会话并不都由同一个进程处理,所以从Web服务器的整体角度来看,轮循并不是绝对的。负载均衡的另一个规则是随机(Random),这种规则下,会话将被随机分配给可用的应用服务器。

本例中,<ServerGroup Name="websphere/Default Server"> 中只定义了一个服务器,<Server CloneID="to0oee2t" Name="Default Server">,所以请求将被发送给该服务器。

确认了应用服务器后,插件必须确定使用什么传送(Transport)。每个服务器都可以定义一个或多个传送,但是如果同种类型的传送定义了多个,例如定义了多个HTTP传送,那么配置文件中的第一个传送将会被使用。下面的表格列示了插件如何把HTTP和HTTPS请求映射到应用服务器的可用传送:

接收到的
协议请求
应用服务器
只有HTTP传送
应用服务器
只有HTTPS传送
应用服务器既有HTTP传送
又有HTTPS传送
HTTPHTTPHTTPSHTTP
HTTPSHTTPHTTPSHTTPS

一旦确认了传送,插件便可由传送的定义获得主机,端口和传送协议来发送请求。
本例中,<Server CloneID="to0oee2t" Name="Default Server">中只定义了一个传送,<Transport Hostname="websphere" Port="9080" Protocol="http"/>,所以插件将使用该传送,将请求以HTTP协议发送到主机“websphere”的9080端口。

现代应用基础设施安全攻防:从中间件漏洞到容器集群的纵深防御 在微服务与云原生架构成为主流的今天,应用安全已从传统的Web漏洞防护,演进为对多层基础设施的纵深防御。其核心在于理解从应用中间件、容器运行时到容器编排平台的技术栈中,每个环节都可能成为攻击面。例如,中间件的反序列化漏洞(如CVE-2023-34050)和请求走私问题,是突破应用边界的常见入口。容器安全则聚焦于隔离机制的突破,如不安全的配置导致容器逃逸。而Kubernetes等编排平台引入了复杂的网络、认证与授权模型,其API Server、RBAC和网络策略的配置不当,会为攻击者提供广阔的横向移动空间。这些 阅读详情

相关推荐

IntelliJ IDEA 与 Cursor 协同工作流实战指南

IDEA 是 Java 开发的工业级 IDE,Cursor 是基于 VS Code 内核的 AI 原生编程编辑器——二者并非插件关系,而是互补工具。理解其底层架构差异(如 JVM 沙箱 vs Electron+Node 运行时)是构建高效开发流的前提。ACP 插件受限于 JetBrains 插件模型,仅支持基础补全,无法承载 Chat、Agent、调试辅助等核心能力;而通过命令行集成与快捷键协同(如 cursor --file --line),可实现零摩擦上下文传递。该方案兼顾 IDEA 的工程稳定性与 C

weixin_34060741的博客 385

WebSphere下配置HTTP压缩

背景 WebSphere本身的安装配置中并不包含HTTP压缩的模块,而是通过新增WebServer来实现的,WebSphere通过Plugin与WebServer进行通信,所有的HTTP请求通过WebServer来转发。WebServer上面可以实现请求过滤,内容压缩,以及负载均衡等功能。 WebServer通常可以是IIS(Internet Information Service),更常用的...

weixin_30667649的博客 231

34、WebSphere部署:可扩展性与容错性全解析

本文深入解析了WebSphere应用服务器在电子商务系统中的部署方案,重点探讨了可扩展性与容错性的实现方法。文章从基础的服务器拓扑结构出发,对比了两服务器与三服务器架构的优劣,详细介绍了DMZ安全配置、plugin-cfg.xml文件作用、垂直与水平扩展策略,以及通过Web服务器插件和Alteon路由器实现负载均衡与会话亲和性的技术细节。最后提供了完整的部署示例和针对开发与生产环境的实践建议,帮助构建高性能、高可用的WebSphere应用体系。

i0j1k2l3m的博客 61

WebSphere Application Server下载安装部署

WebSphere 为 SOA (面向服务的架构)环境提供软件,以实现动态的、互联的业务流程,为所有业务情形提供高度有效的应用程序基础架构。WebSphere 是 IBM 的应用程序和集成软件平台,包含所有必要的中间件基础架构(包括服务器、服务和工具),这些基础架构是创建、部署、运行和持续监视企业级 Web 应用程序和跨平台、跨产品的解决方案所必需的。与WAS6,WAS7相比较而言 WAS8发生了很大的改变,其安装介质和以前截然不同;并且官网已经明确说明:版本1.7.4.7及更早版本已被1.8.x和1.9.

xyb1206的博客 9817

S32K144(1)新建裸机项目以及烧录调试工程

目录 1、简介 2、S32DS新建裸机项目 2.1、新建空的项目 2.2、选择标准库的S32DS 2.3、选择使用EWL官方库 2.4、新建成功 3、烧录工程 3.1、点击Debug,选择Debug Configurations 3.2、新建GDB SEGGER J-Link Debugging 3.3、确认Project和C/C++ Applicants是需要烧写的项目名和路径正确 3.4、确认Executable Device name Interface等各个配置信息正确,后点击

朗朗上口就行啦的博客 4975

11、rsa-目标主机支持RSA密钥交换【原理扫描】的漏洞

通过将 etcd 的 TLS 密钥交换算法从 RSA 升级为 ECDHE,可实现前向保密,彻底消除 “私钥泄露导致历史流量解密” 的风险。核心步骤是通过强制启用含ECDHE的套件,并禁用 RSA 密钥交换套件,同时建议升级到 TLS 1.2+ 并优化证书类型(优先 ECDSA)。这一配置符合云原生安全最佳实践,也是 Kubernetes 等依赖 etcd 的系统推荐的安全标准。生成临时密钥的具体步骤是什么?如何验证etcd是否已成功更新为ECDH密钥交换算法?配置临时密钥交换算法可能带来哪些性能影响。

xuebo1129927648的博客 1万+

WAS 配置笔记(转)

1.查看was端口情况a.服务器&gt;服务器类型&gt;WebSphere Application Server(应用服务器) &gt; server1 &gt; 端口b.WC_adminhost 9060+ 控制台端口WC_adminhost_secure 9043+ https控制台端口WC_defaulthost 9080+ 应用程序端口c.WC_defaulthost传输链 传输链表示在...

iteye_2280的博客 1243

使用cartographer纯定位替换amcl定位

经过实际使用,发现cartographer定位对于重定位的表现比amcl好。如果机器人的起始位置离原点较远,amcl很难自行重定位到正确的位置,只能手动修改初始位置。然而cartographer定位的表现则很好,在行驶一段距离或原地旋转一段时间后能够正确重定位。

XJ_75的博客 8313

websphere mq_为WebSphere MQ Internet Pass-Thru(MQIPT)配置HTTP和HTTPS隧道

在本教程中,您将学习如何配置MQIPT HTTP和HTTPS实现,以及如何使用HTTP和HTTPS协议以及Internet和云技术来加深对MQIPT应用程序的了解。 本教程向您展示如何配置HTTP和HTTPS隧道选项,以将两个MQIPT实例之间的数据包作为HTTP请求发送。 由于IBM®WebSphere®MQ通道无法处理HTTP请求,所以接收MQIPT实例必须将传入的HTTP请求转换为标准W...

cuxiong8996的博客 1302

YOLOv10改进 | 代码逐行解析(三) | YOLO中的Mosaic增强详解(新手入门必读系列)

本文给大家带来的是YOLOv10中的Mosaic增强代码的详解,可能有部分人对于这一部分比较陌生,有的读者可能知道Mosaic增强但是不知道其工作原理,具体来说Mosaic增强就是指我们的数据集中的图片在输入给模型之前的一个处理过程(我们的图片并不是直接就输入给模型了,大家的训练结果中的结果检测图片大家可以看到数据集中多个图片会组合在一起这就是简单的Mosaic增强),下面我就来讲解一下其在YOLOv10中工作原理和代码定义,下面图片为一个Mosaic增强后的图片。​。

Snu77的博客 2077

手把手教你从入门到精通C# 操作MySql数据库

本文是《C#操作MySql数据库从入门到精通》专栏的导读,帮助大家知道学习本专栏能够获取什么!

qq_34059233的博客 1935

WebSphere多节点安装及"克隆"配置说明

第一部分:说明本文以一个例子说明如何在win2000平台上实现WebSphere4.0的多节点安装和"克隆"的配置(在UNIX上的思路是一样的,具体细节可能不同)。这种安装和配置在实际生产环境中有广泛的应用,通过这个实验,我们可以对WebSphere、Web Server及数据库服务器之间的关系以及"克隆"有更深的理解。多节点安装WebSphere的最简单的安装是把Web服务器、应用服

liumyong的专栏 3934

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

dvlinker的技术专栏 7165

基于WAS 6.1的WebSphere Portal 6.1 Cluster配置详解

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0812_cuiye/ 集群是搭建高可用性环境的有效解决方案之一,因此也成为 WebSphere Portal 支持的一项重要功能。本文将向您介绍 WebSphere Portal V6.1 集群的搭建过程,配置过程中经常遇到的问题及

guolong1983811的专栏 2300

【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值

ChatGPT 是由 OpenAI 开发的一种先进的大型语言生成模型,能够理解和生成准确、自然且连贯的文本。文本生成数据分析内容审核语义理解自然语言推理以及其他众多任务ChatGPT是一种基于GPT-3.5架构的大型语言模型,由OpenAI公司开发。该模型在自然语言处理领域有着广泛的应用,可以用于文本生成、文本分类、情感分析、问答系统等任务。本文将从模型的架构、训练方式、优缺点等方面对ChatGPT进行详细介绍。一、模型架构。

AI天才研究院 2万+

华为OD机试真题 新系统2026-04-08 Python&JS 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 588

IBM WebSphere Application Server Network Deployment 6集群简单介绍

1. 介绍当前,越来越多的企业用户基于WebSphere应用服务器和DB2数据库环境搭建业务系统,实现电子商务。随着业务量的增大,企业对系统的负载量和高可用性提出了更多的要求,特别是一些关键业务,如金融,通信,交通等,要求确保系统24*7*365的可用性。通过WAS ND集群,可以实现包含多个应用服务器的分布式环境,确保系统的吞吐量和高可用性。本文通过两个实际场景,介绍如何从头搭建一个WAS

Rubi的专栏 6931

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux for WAS

Guideline: This document will install websphere+http server+plugin. And work for develop enviroment only ,because we will ignore OS check when installation       Media name

wangxinarron的专栏 1039

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

工作中使用到的单词(软件开发)_第四版

本文汇总了2020-2025年间软件开发相关的工作笔记,主要包括三版技术词汇整理(2020-2025)、优快云文章导出PDF情况,以及2025年6月的专题整理。重点内容涉及:WebSphere中jackson包加载路径问题、Java异步线程类型(守护/非守护线程)的区分与解决方案、DB2数据库连接相关指令(db2listapplications等)、AWS托管服务优势,以及OSGi框架与Java的关系说明。特别标注了技术术语的英文发音(如initiative)和敏感信息处理注意事项(敏感度标签设置)。后续

sun0322 1346

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

was和ihs的优化文档

Web 服务器调整参数WebSphere Application Server 提供用于几个 Web 服务器品牌和版本的插件。每个 Web 服务器操作系统组合都有特定的调整参数,这些参数可影响应用程序性能。•        IBM HTTP Server IBM HTTP Server V6.0 是多进程、多线程的服务器。o        访问日志         描述:收集

2247

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

MuleSoft+LangChain企业级AI编排实战:让大模型走进真实业务流水线

AI编排(AI Orchestration)是将大语言模型深度嵌入企业现有IT系统的关键技术路径,其核心在于解决模型调用与业务流程、数据权限、系统事务之间的协同问题。它并非单纯提升生成质量,而是通过标准化接口、安全令牌传递、多源数据聚合与结构化输出,实现LLM能力在CRM、ERP、数据库等异构环境中的稳定复用。典型技术价值体现在降低AI落地门槛、保障数据主权、支撑RBAC鉴权与分布式事务一致性。应用场景覆盖销售智能助手、合规文档生成、供应链风险预警等需强集成、高可靠、低延迟的生产级AI服务。本文聚焦Mule

weixin_30654419的博客 417

企业级AI编排实战:MuleSoft与LangChain分层集成方案

AI编排(AI Orchestration)是实现大模型在企业生产环境规模化落地的核心技术范式,其本质是将不确定性AI能力嵌入确定性IT基础设施。它基于服务编排原理,通过分层解耦实现数据接入、流程控制、安全治理与LLM推理的协同;技术价值在于保障SLA可用性、满足GDPR等合规要求、支持RBAC动态权限,并降低AI服务运维复杂度。典型应用场景包括CRM智能助手、供应链风险预警和HR入职自动化等业务系统深度集成。本文聚焦企业级AI编排的工程化落地,详解MuleSoft与LangChain混合架构设计,涵盖数据

weixin_30340819的博客 359

OSWorkflow 2.8.0 部署与核心机制解析:一次经典工作流引擎的实践考古

工作流引擎是协调业务流程自动化执行的核心组件,其设计通常基于有限状态机(FSM)等理论模型,通过定义状态、转换和动作来实现业务逻辑的编排。在技术原理上,工作流引擎将流程定义与运行时实例分离,并通过条件、函数等扩展点注入具体业务逻辑,从而实现技术框架与业务领域的解耦。这种设计具有很高的技术价值,它使得复杂、多变的业务流程得以标准化、可视化管理和稳定执行,是构建审批系统、订单处理等场景的关键基础设施。本文以经典的OSWorkflow引擎为例,通过实际部署其2.8.0版本示例应用,深入剖析了其基于XML的流程定义

weixin_33747129的博客 412

JMeter与Prometheus协同:构建性能测试与监控一体化闭环

在软件工程实践中,性能测试与系统监控是保障应用稳定性的两大基石。性能测试通过模拟用户负载,验证系统在压力下的表现;而监控则持续采集生产环境的真实运行时数据,用于问题发现与根因定位。传统模式下,两者数据割裂,难以形成有效闭环。通过将JMeter的深度压测能力与Prometheus的云原生监控生态相结合,可以构建从压测到上线的‘测试即监控’体系。该方案的核心原理是利用JMeter的Backend Listener或JSR223插件,将压测过程中产生的请求响应时间、吞吐量等原始样本数据,实时转换为Promethe

cuxiong8996的博客 1729

企业级AI编排:MuleSoft与大语言模型深度集成实践

AI编排(AI Orchestration)是将大语言模型(LLM)融入企业服务总线(ESB)和API治理体系的核心范式,其本质不是简单调用API,而是构建具备确定性、可观测性、可审计性的智能调度层。它解决LLM固有的非确定性响应、上下文敏感、资源消耗高等工程挑战,通过策略注入、全链路追踪、合规即代码等机制,实现与银行核心、医保结算、制造MES等严苛生产环境的安全协同。关键技术价值在于将LLM转化为可治理、可熔断、可降级的‘认知组件’,支撑高SLA业务场景。本文聚焦MuleSoft平台与LLM的生产级集成路

Faith, Simpleness, Transparency, Innovation 508
上一篇: WebSphere 6.0 + DB2 部署心得
下一篇: 浅谈Java的输入输出流
tttk
博客等级 码龄27年 37粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值