注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

Linux下HTTP代理的思路分解  

2013-12-04 18:25:36|  分类: http编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
功能要求:作为一个HTTP代理服务器,提供代理和过滤用户HTTP请求的功能

基本思想

HTTP的代理主要就是取得用户发送的socket请求里真正想要连接的WEB服务器,将这个请求进行过滤和转发的过程。

主要工作是直接或间接地操作socket

具体工作可以分为两个部分:

1)一个是侦听客户端请求的socket。即向真正的web服务器发送连接请求的socket

2)第二个socket过程需要从前一个socket过程中得到所要连接的web服务器的域,这涉及到字符串的操作过程。当用户想要连接的域是被禁止的时候,返回域被禁止的网页给客户.当然如果是合理的请求就予以转发.

重要的几个过程
1)main
函数功能
      • 启动监听客户端连接socket;

      • 成功创建监听socket后循环等待来自客户端的HTTP连接请求消息;

      • 采用多进程方式,只要有一个客户端发送连接请求,则fork()一个进程专门处理这个请求;

      • 调用处理客户端HTTP请求消息函数;

      • 处理完毕后关闭该进程;

2)启动和初始化代理服务器
  • 创建监听客户端请求的socket,并绑定本地ip地址及端口号

  • 监听客户端HTTP连接请求

3)处理客户端发送过来的HTTP请求消息
  • 接受get/post请求

  • 取得客户端要求连接的服务器的域名,这里涉及到字符串的操作

  • 取出域名

  • 判断域名是否合法,如果不合法则拒绝用户的HTTP请求并再浏览器上显示通知

  • 如果域名合法,则创建连接web服务器的socket,转发HTTP连接请求消息

  • 关闭转发socket

  评论这张
 
阅读(102)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017