SOCKS、HTTP代理

来源:互联网 发布:文件夹自动拷贝软件 编辑:程序博客网 时间:2024/06/06 08:53
  
HTTP和SOCKS的区别:
 VPN,SSH,SHADOWSOCKS傻瓜图解(通俗易懂)http://wenku.baidu.com/link?url=NWI7YFLFpzN3VO20hRmXbJgZ_B6ncgJl3fNSIK4h96UKa6S1JMBvdcAJudhfvvIUD7lWw5p648dVWFrXsWCwmfhe0EaAyTT4h87PPFLT2Am
HTTP代理:而HTTP工作应用层上,能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80、8080、3128等。
 
 SOCKS代理:
SOCKS工作在会话层上,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以Socks代理服务器比应用层代理服务器要快得多。
SOCKS是一组由Internal工程工作小组(IETF)所开发出来的开放软件开放标准,用来处理网络安全的事宜。SOCKS象一堵墙被夹在Internal服务器和客户端之间,对于出入企业网络的资讯提供流量和安全的管理。SOCKS这个名词并不是一组英文字头的缩写,而是一个和TCP/IP的Socket端口有关的安全标准。
Sock代理使用需要ip地址端口以及我们提供的帐号密码,客户端须利用第三方代理软件(例如:Sockscap32或E-Border3.51等)。当然,QQ等程序自带有SOCK5协议网络设置功能,如果想用Sock5代理登陆QQ,也就没必要用这些代理软件
一般防火墙系统通常是象网关(Gateway)一样是作用在OSI模型的第七层也就是应用层,对TCP/IP的高级协议,如Telnet、FTP、HTTP和SMTP加以管制;
SOCKS作用在OSI模型的第四层也就是会话层上,象一个代理一样对客户端到服务器端或服务器和服务器之间的数据联系,提供安全上的服务。由于SOCKS作用在会话层上,因此它是一个提供会话层到会话层间安全服务的方案,不受高层应用程序变更的影响
SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP请求,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。
SOCKS代理又分为SOCKS4和SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCK4则不一定能做到,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据,而象国外的ICQ使用比UDP协议安全的TCP协议,所以就可以使用SOCKS4代理。
SOCKS5是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5服务器通过将前端发来的请求转发给真正的目标服务器,模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。

简介
如果您的机器具有一个合法的 Internet IP 地址, 或者您利用自己机器上的调制解调器拨号上网, 可以自由和Internet 上任何主机沟通, 那么您通常不必关心 SOCKS5 协议。SOCKS5协议对于处在内部网络中的机器,需要透过网络中某些可以联通外部 Internet的机器访问外部时,有用。SOCKS5服务器在将通讯请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务器的响应后,也原样转发给前端。因此,SOCKS5协议是一种代理协议,对于各种基于TCP/IP的应用层协议都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但是它能够忠实地转发通讯包,完成协议本来要完成的功能。
与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程序的修改和转换。和HTTP代理协议不同,SOCKS5实际上是一个传输层的代理协议。我们可以想象,如果每个具体的应用层协议都要设计对应的代理协议表达办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局面。不过,并不是凡是使用基于TCP/IP协议的应用协议的软件,都可以无条件地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能利用SOCKS5代理服务器。
运行状态
一个支持SOCKS5协议的前端,通常具有两种运行状态:
1)直接通讯状态,不使用SOCKS5接口。这时的通讯是针对最终服务器进行
的。
2)SOCKS5 状态。 使用 SOCKS5 接口将本来要发送给最终服务器的请求发
送给 SOCKS5 服务器。在前端和 SOCKS5 服务器进行初始化会话的时候,前端
告诉了 SOCKS5 服务器关于最终服务器的 IP 地址和端口信息,所以 SOCKS5
服务器能够忠实按照前端的要求启动和最终服务器的通讯过程。
区别
SOCKS是一组由Internal工程工作小组(IETF)所开发出来的开放软件开放标准,用来处理网络安全的事宜。SOCKS象一堵墙被夹在Internal服务器和客户端之间,对于出入企业网络的资讯提供流量和安全的管理。SOCKS这个名词并不是一组英文字头的缩写,而是一个和TCP/IP的Socket端口有关的安全标准,一般防火墙系统通常是象网关(Gateway)一样是作用在OSI模型的第七层也就是应用层上,对TCP/IP的高级协议,如Telnet、FTP、HTTP和SMTP加以管制,而SOCKS作用在OSI模型的第五层也就是会话层上,象一个代理一样对客户端到服务器端或服务器和服务器之间的数据联系提供安全上的服务。由于SOCKS作用在会话层上,因此它是一个提供会话层到会话层间安全服务的方案,不受高层应用程序变更的影响。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以Socks代理服务器比应用层代理服务器要快。
  
 
 参考知识:OSI(OpenSystemInterconnection),开放式系统互联参考模型,它把网络协议从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如常规的路由器是三层交换设备,常规的交换机是二层交换设备。
OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
 
 http://blog.sina.com.cn/s/blog_5db869d00100c00s.html
这个模型是一个定义异构计算机连接标准的框架结构,其具有如下特点:
  ①网络中异构的每个节点均有相同的层次,相同层次具有相同的功能。
  ②同一节点内相邻层次之间通过接口通信。
  ③相邻层次间接口定义原语操作,由低层向高层提供服务。
  ④不同节点的相同层次之间的通信由该层次的协议管理,
  ⑤每层次完成对该层所定义的功能,修改本层次功能不影响其它层、
  ⑥仅在最低层进行直接数据传送。
  ⑦定义的是抽象结构,并非具体实现的描述。
 
  OSI网络体系结构如图8.3所示。在OSI网络体系结构中、除了物理层之外,网络中数据的实际传输方向是垂直的。数据由用户发送进程发送给应用层,向下经表示层、会话层等到达物理层,再经传输媒体传到接收端,由接收端物理层接收,向上经数据链路层等到达应用层,再由用户获取。数据在由发送进程交给应用层时,由应用层加上该层有关控制和识别信息,再向下传送,这一过程一直重复到物理层。在接收端信息向上传递时,各层的有关控制和识别信息被逐层剥去,最后数据送到接收进程。
  现在一般在制定网络协议和标准时,都把ISO/OSI参考模型作为参照基准,并说明与该参照基准的对应关系。例如,在IEEE802局域网LAN标准中,只定义了物理层和数据链路层,并且增强了数据链路层的功能。在广域网WAN协议中,CCITT的X.25建议包含了物理层、数据链路层和网络层等三层协议。一般来说,网络的低层协议决定了一个网络系统的传输特性,例如所采用的传输介质、拓扑结构及介质访问控制方法等,这些通常由硬件来实现;网络的高层协议则提供了与网络硬件结构无关的,更加完善的网络服务和应用环境,这些通常是由网络操作系统来实现的。
SOCKS、HTTP代理

 ISO/OSI参考模型3D演示
 
 
 
 
常用的Socks辅助工具软件设置问题
SocksCap32
SocksCap32 软件是一个通过Socks代理连接网络的程序,由美国NEC USA, Inc. 公司出品的代理服务器第三方支持软件,拥有功能强大的 SOCKS调度,可以使所有Winsock应用都可以用Socks代理的工具,通过它几乎可以让所有基于 TCP/IP 协议的软件象ICQ、MUD、FTP、IE、NEWS……都能通过 Socks 代理服务器连接到Ineternet,原先不支持Socks代理的应用也可以用Socks代理了,它就象一个帽子一样,可以盖住客户端软件,捕捉他们的网络连接,然后转向代理服务器。界面图如图1所示点击SETTING就进入图2。

 

 

 
SocksCap在使用之前,需要进行一些配置工作(如图2)。首先进入SocksServer项填入通通通的地址:127.0.0.1,在Port项中填入地址端口:1080;Protocol选择Socks5项,点击“确定”。
 
http://www.tongtongtong.com/www/modules/smartfaq/faq.php?faqid=21
http://www.tongtongtong.com/www/modules/smartfaq/faq.php?faqid=20
 
 
=========================================
HTTPS和HTTP的区别
什么是 HTTPS
为什么需要 HTTPS
HTTP 和 HTTPS 的相同点
HTTP 和 HTTPS 的不同之处
HTTPS 如何工作
什么时候该使用 HTTPS
浏览器集成

什么是 HTTPS?
HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web协议。
你也可以说:HTTPS = HTTP + SSL
HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。

为什么需要 HTTPS ?
超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候你就是在使用 HTTP 协议,但HTTP 是不安全的,可以轻松对窃听你跟 Web服务器之间的数据传输。在很多情况下,客户和服务器之间传输的是敏感歇息,需要防止未经授权的访问。为了满足这个要求,网景公司(Netscape)推出了HTTPS,也就是基于安全套接字层的HTTP 协议。

HTTP 和 HTTPS 的相同点
大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS客户端——浏览器,设立一个连接到 Web服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器URI 模式,因此资源可以被唯一指定。而 HTTPS 和 HTTP唯一不同的只是一个协议头(https)的说明,其他都是一样的。

HTTP 和 HTTPS 的不同之处
HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https://开头
HTTP 是不安全的,而 HTTPS 是安全的
HTTP 标准端口是 80 ,而 HTTPS的标准端口是 443
在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
HTTP 无需加密,而 HTTPS 对传输的数据进行加密
HTTP 无需证书,而 HTTPS 需要认证证书

HTTPS 如何工作?
使用 HTTPS 连接时,服务器要求有公钥和签名的证书。
当使用 https连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供https连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。

换句话说,HTTPS 跟 HTTP 一样,只不过增加了 SSL。
HTTP 包含如下动作:
浏览器打开一个 TCP 连接
浏览器发送 HTTP 请求到服务器端
服务器发送 HTTP 回应信息到浏览器
TCP 连接关闭
SSL 包含如下动作:
验证服务器端
允许客户端和服务器端选择加密算法和密码,确保双方都支持
验证客户端(可选)
使用公钥加密技术来生成共享加密数据
创建一个加密的 SSL 连接
基于该 SSL 连接传递 HTTP 请求

什么时候该使用 HTTPS?
银行网站、支付网关、购物网站、登录页、电子邮件以及一些企业部门的网站应该使用 HTTPS,例如:

PayPal: https://www.paypal.com
Google AdSense: https://www.google.com/adsense/
如果某个网站要求你填写信用卡信息,首先你要检查该网页是否使用 https加密连接,如果没有,那么请不要输入任何敏感信息如信用卡号。

浏览器集成
多数浏览器在收到一个无效证书的时候都会显示警告信息,而一些老的浏览器会弹出对话框让用户选择是否继续浏览。新的浏览器一般在整个窗口显示横幅的警告信息,同时在地址栏上显示该网站的安全信息。如果网站中包含加密和非加密的混合内容,多数浏览器会提示警告信息。

=======================================================

在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 
要比http协议安全

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
HTTPS解决的问题:
1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书.改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的.客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.
2 . 通讯过程中的数据的泄密和被窜改
1. 一般意义上的https, 就是 server 有一个证书.
a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
b) 服务端和客户端之间的所有通讯,都是加密的.
i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份.应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
HTTPS 一定是繁琐的.
a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7个往返.
i. 任何应用中,过多的round trip 肯定影响性能.
b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.
i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU信能比较低的话,肯定会降低性能,从而不能serve 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示

与HTTP有什么区别?HTTPS的七个误解http://www.chinaz.com/web/2015/0320/391752.shtml
0 0