易截截图软件、单文件、免安装、纯绿色、仅160KB

用Java开发代理服务器

 
代理服务器的应用非常广泛。比如,在企业网内部,它可以用来控制员工在工作时浏览的Internet内容,阻止员工访问某些类型
的内容或某些指定的网站。代理服务器实际上扮演着浏览器和Web服务器之间的中间人的角色,能够对浏览器请求进行各种各样的处理,能够过滤广告和
Cookie,能够预先提取Web页面,使得浏览器访问页面的速度更快,等等。
基础知识
不管以哪种方式应用代理服务器,其监控HTTP传输的过程总是如下:
步骤一:内部的浏览器发送请求给代理服务器。请求的第一行包含了目标URL。
步骤二:代理服务器读取该URL,并把请求转发给合适的目标服务器。
步骤三:代理服务器接收来自Internet目标机器的应答,把应答转发给合适的内部浏览器。
例如,假设有一个企业的雇员试图访问www.cn.ibm.com网站。如果没有代理服务器,雇员的浏览器打开的Socket通向运行这个网站的Web服
务器,从Web服务器返回的数据也直接传递给雇员的浏览器。如果浏览器被配置成使用代理服务器,则请求首先到达代理服务器;随后,代理服务器从请求的第一
行提取目标URL,打开一个通向www.cn.ibm.com的Socket。当www.cn.ibm.com返回应答时,代理服务器把应答转发给雇员的
浏览器。
当然,代理服务器并非只适用于企业环境。作为一个开发者,拥有一个自己的代理服务器是一件很不错的事情。例如,我们可以用代理服务器来分析浏览器和Web
服务器的交互过程。测试和解决Web应用中存在的问题时,这种功能是很有用的。我们甚至还可以同时使用多个代理服务器(大多数代理服务器允许多个服务器链
接在一起使用)。例如,我们可以有一个企业的代理服务器,再加上一个用Java编写的代理服务器,用来调试应用程序。但应该注意的是,代理服务器链上的每
一个服务器都会对性能产生一定的影响。
回页首
设计规划
正如其名字所示,代理服务器只不过是一种特殊的服务器。和大多数服务器一样,如果要处理多个请求,代理服务器应该使用线程。下面是一个代理服务器的基本规划:
等待来自客户(Web浏览器)的请求。
启动一个新的线程,以处理客户连接请求。
读取浏览器请求的第一行(该行内容包含了请求的目标URL)。
分析请求的第一行内容,得到目标服务器的名字和端口。
打开一个通向目标服务器(或下一个代理服务器,如合适的话)的Socket。
把请求的第一行发送到输出Socket。
把请求的剩余部分发送到输出Socket。
把目标Web服务器返回的数据发送给发出请求的浏览器


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

JAVA配置JNDI数据源

 本案例是使用SQLSERVER2005作为数据源,使用TOMCAT6.0
第一步,把以下代码拷贝到tomcat的安装目录conf文件夹context.xml文件下。
数据库连接请修改
<Resource name="jdbc/demo"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.j ......

JAVA面试综合

1.J2EE是什么?
  2.介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
    如COLLECTION中遗留类(HASHTABLE、VECTOR)和现有类的区别?(同步)
  3.Java中异常处理机制,事件机制?
 
  4.EJB与JAVA BEAN的区别?
     EJB与JAVA BEAN是SUN的不同组件 ......

JAVA编程题

1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
import java.util.*;
public class bycomma{
 public static String[] splitStringByComma(String source){
   if(source==null||source.trim().equals(""))
    ......

java面试题3

23.编程实现序列化的Student(sno,sname)对象在网络上的传输
package com.softeem.demo;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.ServerSocket;
import java.net.Socket;
class Student implem ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号