http代理和socks代理的区别
SOCKS其实是一种网络代理协议。该协议所描述的是一种内部主机(使用私有ip地址)
通过SOCKS服务器获得完全的Internet访问的方法。具体说来是这样一个环境:用一台运行S
OCKS的服务器(双宿主主机)连接内部网和Internet,内部网主机使用的都是私有的ip地址
,内部网主机请求访问Internet时,首先和SOCKS服务器建立一个SOCKS通道,然后再将请求
通过这个通道发送给SOCKS服务器,SOCKS服务器在收到客户请求后,向客户请求的Internet
主机发出请求,得到相应后,SOCKS服务器再通过原先建立的SOCKS通道将数据返回给客户。
当然在建立SOCKS通道的过程中可能有一个用户认证的过程。
SOCKS和一般的应用层代理服务器完全不同。一般的应用层代理服务器工作在应
用层,并且针对不用的网络应用提供不同的处理方法,比如HTTP、FTP、SMTP等,这样,一旦
有新的网络应用出现时,应用层代理服务器就不能提供对该应用的代理,因此应用层代理服
务器的可扩展性并不好;与应用层代理服务器不同的是,SOCKS代理服务器旨在提供一种广义
S代理工作再线路层(即应用层和传输层之间),这和单纯工作在网络层或传输层的ip欺骗(
或者叫做网络地址转换NAT)又有所不同,因为SOCKS不能提供网络层网关服务,比如ICMP包
socks4和socks5都属于socks协议,只是由于所支持的具体应用不同而存在差异。socks4代理只支持TCP应用,而socks5代理则可以支持TCP和UDP两种应用。不过由于socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了。