什么是http网页代理服务器
代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。
这是一个真实的HTTP请求的例子,其中每一行都以\r\n结尾。由于我们写的是简单的服务器,所以我们只关心其中的几行。
第一行称为请求行,GET是请求方法,表示获取资源,除此之外还有POST方法、PUT方法、HEAD方法、DELETE方法和OPTIONS方法等。由于我们写一个简单的服务器,所以暂时仅支
持GET方法。/是URI,表示客户希望访问的资源的URI。HTTP/11是HTTP协议的版本,此例中表示11版本。我们需要解析请求行,需要解析出方法字段、URI和HTTP协议版本。
第二行是Host字段,表示所请求的资源所在的主机名和端口号。
第三行User-Agent是客户的浏览器的类型,此例是运行在Ubuntu上的Firefox浏览器。
第四行Accept表示客户接受的资源的类型。
第四行Accept-Language表示客户接受的语言类型。
第五行Connection表示服务器在发送完客户请求的数据之后是否断开TCP连接。keep-alive表示不断开,close表示断开。
HTTP上传下载大文件总是通过80端口,而FTP上传下载文件却不通过21端口
FTP服务要用到两个端口,21号端口是用来建立控制连接的,而20号断口才是用来建立数据连接的(即用来传输数据的)
HTTP也一样,80端口是用来建立连接用的,它会起一个别的端口去接收数据
建HTTP下载服务器:
外网使用端口映射就能解决,内网下个软件就可以了
或
1、给这台计算机分配固定ip地址
2、安装Serv-U之类的ftp软件,并且按要求设置
3、如果内网访问直接输入ip地址就可以了
4、如果外网也要访问则需要这台计算机上安装花生壳之类的动态域名软件绑定ADSL的动态ip地址,然后在路由器上映射这台的计算机的21端口到广域网ip地址的21端口上,这样外网就可以通过花生壳的动态域名访问你的ftp服务器了。
考虑到从0开始的0指代不明,我想还是跳过OS及网卡驱动之类的玩意,从socket这个1开始。
1建立一个TCP Socket服务器。
首先编写一个TCP Socket服务器,是因为HTTP通信是建立在TCP Socket基础上的。所要做的工作就是监听某个指定端口(默认HTTP服务在80),接收访问请求并建立连接,接收发来的Datagram,并且提供回复Datagram的能力。这一步可以简单可以复杂,可以考虑并发、均衡、端口连接限制balabala,也可以二逼到啥都不管。总之我们需要监听一个端口就是了。
2编写一个解析HTTP Request的解析器。
既然是HTTP服务,从之前监听的端口收来的Datagram里自然就是HTTP Request。Request分表头和正文,包括访问地址、UA、Cookie等各类参数以及提交的表单等内容。详细格式看看HTTP协议文档就好。
3实现URL路由。
获得了Request之后,我们知道用户访问了个什么地址,就要指向相应的内容。根据地址来指定内容的工作就是路由,把不同的路径交给不同的程序(函数、脚本…)处理。
4产生Response。
HTTP Response其实与Request很类似,也是区分表头和正文,多几个关机字表示当前相应状态、响应内容类型之类的东西。正文里就是你需要的回应,可能是个json,可能是个静态文件,也可能是别的什么东西。从路由处得到响应的内容,然后按照HTTP Response的要求包起来。最后经过之前的Socket服务返回给用户。
基本上简单的HTTP Server就这么点东西,可以说并不复杂。但是考虑到各种额外功能,例如权限、ip过滤、并发/异步、request转发、websocket、https…其实还是蛮麻烦的。
1、所谓服务器:指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。
2、家用mini台式电脑可以做服务器,可以对外提供文件、数据库、应用服务。但问题是,用户是谁,需要连接的时间是不是24小时不间断,网络流量需求多大。
3、你所假设的这个服务器通过什么网络形式对外提供服务?而且主机根本不能稳定运行、在访问用户量大的时候,性能问题就立马体现了!
如果2、3个人,在同一局域网用就可以,而且需要允许死机、重启、关机、断电时常发生。
0条评论