HTTP代理服务器的实现

本文介绍了HTTP代理服务器的实现原理,通过套接字编程详细讲解了如何创建代理服务器,包括接受客户端请求、转发到目标服务器并返回响应。文中还提到了代理服务器的核心代码,解析HTTP请求的方法,并探讨了在浏览器中设置HTTP代理的后续步骤。
摘要由CSDN通过智能技术生成

一.套接字编程

API函数介绍

SOCKET accept( SOCKET s , struct sockaddr_in FAR * addr ,int Far *addlen ) ; 

函数说明:当没有连接请求时,对于阻塞式套接字,如果程序调用了accept函数,那么线程将进入等待状态,知道有一个连接请求到达为止,accept在接收到连接请求时,会为这个连接建立起一个新的套接字,该套接字负责和客户单进行通信,常被称为“会话套接字。此前调用的socket函数返回的套接字负责监听和接收连接请求,因此被称为“监听套接字”。

参数说明:参数s是此前用于监听和接收连接的“监听套接字”。

          参数addr和参数addlen是用于返回客户机的信息,如果服务机对此不关心,那        么可以都设置为NULL

int connect( SOCKET s , struct sockaddr_in FAR * name , int namelen ) ;

参数说明:参数s是调用socket函数返回的套接字。

参数name 是服务机的地址,namelen属于服务机地址类型的大小。

int send( SCOKET s , const char FAR *buf ,int len , int flags ) ;

int recv( SOCKET s , char FAR * buf , int len , int flags ) ;

参数说明:参数s在服务器端指调用accept函数接收客户端的连接请求后返回的会话套接字,而客户端只有一个会话套接字(因为客户端不用监听连接请求,因此没有监听套接字)

参数buf是指要发送和接收数据的缓冲区。

参数lenbuf的大小。

如果函数调用成功,会返回实际发送或接收的字节数。

如果函数调用失败,那么将返回错误SOCKET_ERROR

二.利用socket实现代理服务器的基本框架

代理服务器是基于socket套接字编程实现的,现在可以考虑实现三个端,一个是client , 一个是server,最后一个是proxy server

其中proxy server就是我们要实现的代理服务器,在这一步中实现的主要功能是并没有实现能够解析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值