HTTP代理主机名的作用和使用方法详解 (http代理主机名)

在互联网中,HTTP代理主机名起着至关重要的作用,它是一种网络代理服务器,可以帮助用户在网络上传输数据。HTTP代理主机名的使用方法也非常简便,用户只需要按照一定的规则就可以轻松使用。本文将从HTTP代理主机名的作用和使用方法两个方面进行详细剖析。

一、HTTP代理主机名的作用

HTTP代理主机名是一种网络服务器,它通常作为一种代理服务的提供者,可以帮助用户在传输数据时保护个人信息,防止被黑客盗取信息。HTTP代理主机名的工作原理是将用户输入的数据进行加密处理绑定,然后通过代理服务器进行传输。代理服务器在收到数据后,将其解密并重新组装成原始数据,再将其发送给目标服务器,从而实现数据的传输。

HTTP代理主机名的另一个重要作用是能够绕过网络屏蔽服务。在一些特殊情况下,网络服务提供商可能会屏蔽一些网站,使其无法正常访问。此时,HTTP代理主机名可以起到绕过这种屏蔽服务的作用,让用户能够正常访问这些网站。HTTP代理主机名还可以防止网络劫持,避免个人安全信息泄露等问题。

二、HTTP代理主机名的使用方法

使用HTTP代理主机名非常简单,用户只需要在网络设置中将代理服务器配置到网络中即可。在使用HTTP代理主机名之前,用户需要先确定代理服务器的IP地址和端口号。这些信息通常是由该服务器提供商提供的,可在其网站上查询。

在Windows操作系统中,用户可以通过以下步骤设置HTTP代理主机名:

1.进入计算机的“控制面板”,然后选择“网络和共享中心”选项。

2.然后点击“更改适配器设置”链接,进入本地网络连接的属性页面。

3.选择本地连接,右键点击鼠标,然后选择“属性”选项。

4.在属性页面中找到“Internet协议版本4(TCP/IPv4)”选项,然后点击“属性”按钮。

5.在弹出的窗口中选择“使用下面的代理服务器地址”,然后将代理服务器的IP地址和端口号填入对应的文本框中即可。

在Mac OS X系统中,用户可以通过以下步骤设置HTTP代理主机名:

1.打开系统偏好设置窗口,然后选择“网络”选项。

2.选择当前正在使用的网络连接,然后点击“高级”按钮。

3.在弹出的窗口中选择“代理”选项卡,然后选择“使用http代理”选项。

4.在代理服务器地址和端口号上输入代理服务器相对应的信息即可。

HTTP代理主机名是一种很好的网络代理工具,它可以保护用户的信息安全并绕过网络屏蔽服务。HTTP代理主机名的使用方法非常简单,用户只需要按照一定的规则进行设置即可。但是,用户在使用HTTP代理主机名的时候,也需要注意代理服务器的选择问题,以免遭到黑客攻击和信息泄露等问题。

相关问题拓展阅读:

maven为什么设置http代理

有时候网络不能直接访问外网, 需要设置代理

设置方式如下:

一、检测本地网络是否不能直接访问Maven的远程中央仓库,命令为ping repo1.maven.org

二、要检查代理服务器是否畅通,

比如现在段银有一个IP地址为192.168.10.117,端口为3267的代理服务,我们需要先运行telnet  192.168.10.来检查该地址的该端口是否畅通,

如果得道出错信息需要先获取正确的代理服务器信息,

如果telnet连接正确,则输入ctrl+>,然后q,回车,退出即可。

三、检查完毕之后,在慎颂安装目录中编辑~/.m2/settings.xml文件,代码如下:

添加代理配置如下:

 

   …

   

      

my-proxy

true

http

.168.10.117

shihuan

repository.mycom.com|*.google.com

>

      

    

   …

    这段配置十分简单,proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下之一个被激活的proxy会生效。

这里声明了一个id为my-proxy的代理,active的值为true表示激活该代理,protocol表示使用的代理协议,这里是http。当然,最重要的是指定正确的主机名(host元素)和端口(port元素)。

上述XML配置中我注释掉了username、password、nonProxyHost几个元素,当你的代理服务需要认证时,就需要配置username和password。

nonProxyHost元素用来指定哪些宽燃郑主机名不需要代理,可以使用 | 符号来分隔多个主机名。

此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理。

OkHttp源码解析 (三)——代理和路由

初看OkHttp源码,由于对Address、Route、Proxy、ProxySelector、RouteSelector等理解不够,读源码非常吃力,看了几遍依然对于寻找复用连接、创建连接、连接服务器、连接

代理服务器

、创建隧道连接等逻辑似懂非懂,本篇决定梳理一遍相关的概念及基本原理。

● HTTP/1.1(HTTPS)

● HTTP/2

● SPDY

一个http请求的流程(直连):

1、输入url及参数;

2、如果是url是域名则解析ip地址,可能对应多个ip,如果没有指定端口,则用默认端口,http请求用80;

3、创建socket,根据ip和端口连接服务器(socket内部会完成3次TCP握手);

4、socket成功连接后,发送http报文数据。

一个https请求的流程(直连):

1、输入url及参数;

2、如果是url是域名则解析ip地址,可能对应多个ip,如果没有指定端口,则用默认端口,https请求用443;

3、创建socket,根据ip和端口连接服务器(socket内部会完成3次TCP握手);

4、socket成功连接后进行TLS握手,可通过java标准款提供的SSLSocket完成;

5、握手成功后,发送https报文数据。

1、分类

● HTTP代理:普通代理、隧道代理

● SOCKS代理:SOCKS4、SOCKS5

2、HTTP代理分类早旦及说明

普通代理

HTTP/1.1 协议的之一部分。其代理过程为:

● client 请求 proxy

● proxy 解析请求获取 origin server 地址

● proxy 向 origin server 转发请求

● proxy 接收 origin server 的响应

● proxy 向 client 转发哗芦响应

其中proxy获取目的服务器地址的标准方法是解析 request line 里的 request-URL。因为proxy需要解析报文,因此普通代理无法适用于https,因为报文都是加密的。

隧道代理

通过 Web 代理服务器用隧道方式传输基于 TCP 的协议。

请求包括两个阶段,一是连接(隧道)建立阶段,二是数据通信(请求响应)阶段,数据通信是基于 TCP packet ,代理服务器不会对请求及响应的报文作任何的处理,都是原封不动的转发,因此可以代理 HTTPS请求和响应。

代理过程为:

● client 向 proxy 发送 CONNET 请求(包含了 origin server 的地址)

● proxy 与 origin server 建立 TCP 连接

● proxy 向 client 发送响应

● client 向 proxy 发送请求,proxy 原封不动向 origin server 转发请求,请求数据不做任何封装,为原生 TCP packet.

3、SOCKS代理分类及说明

● SOCKS4:只支持

TCP协议

(即

传输控制协议

● SOCKS5: 既支持TCP协议又支持

UDP协议

(即用户

数据包

协议),还支持各种身份验证机制、服务器端

域名解析

等。

SOCK4能做到的SOCKS5都可得到,但反过来却不行,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据。

有了上面的基础知识,下面分析结合源码分析OkHttp路由相关的逻辑。OkHttp用Address来描述与目标服务器建立连接的配置信息,但请求输入的可能是域名,一个域名可能对于多个ip,真正建立连接是其中一个ip,另外,如果设置了代理,客户端是与代理服务器建立直接连接,而不是目标服务器,代理又可能是域名,可能对应多个ip。因此,这里用Route来描述最终选择的路由,即乱睁带客户端与哪个ip建立连接,是代理还是直连。下面对比下Address及Route的属性,及路由选择器RouteSelector。

描述与目标服务器建立连接所需要的配置信息,包括目标主机名、端口、dns,SocketFactory,如果是https请求,包括TLS相关的SSLSocketFactory 、HostnameVerifier 、CertificatePinner,代理服务器信息Proxy 、ProxySelector 。

Route提供了真正连接服务器所需要的动态信息,明确需要连接的服务器

IP地址

及代理服务器,一个Address可能会有很多个路由Route供选择(一个DNS对应对个IP)。

Address和Route都是数据对象,没有提供操作方法,OkHttp另外定义了RouteSelector来完成选择的路由的操作。

1、读取代理配置信息:resetNextProxy()

读取代理配置:

● 如果有指定代理(不读取系统配置,在OkHttpClient实例中指定),则只用1个该指定代理;

● 如果没有指定,则读取系统配置的,可能有多个。

2、获取需要尝试的socket地址(目标服务器或者代理服务器):resetNextInetSocketAddress()

结合Address的host和代理,解析要尝试的

套接字

地址(ip+端口)列表:

● 直连或者SOCK代理, 则用目标服务器的主机名和端口,如果是HTTP代理,则用代理服务器的主机名和端口;

● 如果是SOCK代理,根据目标服务器主机名和

端口号

创建未解析的套接字地址,列表只有1个地址;

● 如果是直连或HTTP代理,先

DNS解析

,得到InetAddress列表(没有端口),再创建InetSocketAddress列表(带上端口),InetSocketAddress与InetAddress的区别是前者带端口信息。

3、获取路由列表:next()

选择路由的流程解析:

● 遍历每个代理对象,可能多个,直连的代理对象为Proxy.DIRECT(实际是没有中间代理的);

● 对每个代理获取套接字地址列表;

● 遍历地址列表,创建Route,判断Route如果在路由

黑名单

中,则添加到失败路由列表,不在黑名单中则添加到待返回的Route列表;

● 如果最后待返回的Route列表为空,即可能所有路由都在黑名单中,实在没有新路由了,则将失败的路由返回;

● 传入Route列表创建Selection对象,对象比较简单,就是一个目标路由,及读取方法。

为了避免不必要的尝试,OkHttp会把连接失败的路由加入到黑名单中,由RouteDatabase管理,该类比较简单,就是一个失败路由。

1、创建Address

Address的创建在RetryAndFollowUpInteceptor里,每次请求会声明一个新的Address及StreamAllocation对象,而StreamAllocation使用Address创建RouteSelector对象,在连接时RouteSelector确定请求的路由。

每个Requst都会构造一个Address对象,构造好了Address对象只是有了与服务器连接的配置信息,但没有确定最终服务器的ip,也没有确定连接的路由。

2、创建RouteSelector

在StreamAllocation声明的同时会声明路由选择器RouteSelector,为一次请求寻找路由。

3、选择可用的路由Route

下面在测试过程跟踪实例对象来理解,分别测试直连和HTTP代理HTTP2请求路由的选择过程:

● 直连请求流程

● HTTP代理HTTPS流程

请求url:

1、构造address对象

2、读取代理配置:resetNextProxy

3、解析目标服务器套接字

4、选择Route创建RealConnection

5、确定协议

测试方法:

● 在PC端打开Charles,设置端口,如何设置代理,网上有教程,比较简单;

● 手机打开WIFI,选择连接的WIFI修改网络,在高级选项中设置中指定了代理服务器,ip为PC的ip,端口是Charles刚设置的端口;

● OkHttpClient不指定代理,发起请求。

1、构造address对象

2、读取代理配置:resetNextProxy

3、解析目标服务器套接字

4、选择Route创建RealConnection

5、创建隧道

由于是代理https请求,需要用到隧道代理。

从图可以看出,建立隧道其实是发送CONNECT请求,header包括字段Proxy-Connection,目标主机名,请求内容类似:

6、确定协议,SSL握手

1、代理可分为HTTP代理和SOCK代理;

2、HTTP代理又分为普通代理和隧道代理;普通代理适合明文传输,即http请求;隧道代理仅转发TCP包,适合加密传输,即https/http2;

3、SOCK代理又分为SOCK4和SOCK5,区别是后者支持UDP传输,适合代理聊天工具如QQ;

4、没有设置代理(OkHttpClient没有指定同时系统也没有设置),客户端直接与目标服务器建立TCP连接;

5、设置了代理,代理http请求时,客户端与代理服务器建立TCP连接,如果代理服务器是域名,则解释代理服务器域名,而目标服务器的域名由代理服务器解析;

6、设置了代理,代理https/http2请求时,客户端与代理服务器建立TCP连接,发送CONNECT请求与代理服务器建立隧道,并进行SSL握手,代理服务器不解析数据,仅转发TCP数据包。

如何正确使用 HTTP proxy

OkHttp3中的代理与路由

HTTP 代理原理及实现(一)

服务器名指什么,主机名是什么,是一样的吗

这两个是不一样的;

服务器名:是指你通过网络弯中连接,要访问的那台电脑的名称,或是在一个局域网中提供各式服务的电脑的名称。

主机名就是计算机的名字(计算机名),网上邻居就是根据主机名来识别的,这个名字可以随时更改,从我的电脑属性的计算机名就可更改。 

扩展资料碰滑

因特网上的主机或 Web 站点由主机名识别。主机名有时称为域名。主机名映射到 IP 地址,但是主机名和 IP 地址之间没有一对一关系。

当 Web 客户机发出到主机的 HTTP 请求时,使用主机名。发出请求的用户可能会指定服务器的 IP 地址,而不是主机名,但现在这在因特网上不常见。

对于用户来说,主机名比数字 IP 地址更方便。公司、组织和个人常常选择其 Web 站点的主机名,用户能很容易地记住这些主机名。

现代 HTTP 实施中更重要的是,在 HTTP 请求中使用主机名意味着:

1、 一个主机名中的服务可笑闹腊以由许多服务器提供,它们有不同的 IP 地址。

2、具有一个 IP 地址的一台服务器可以提供许多主机名中的服务。这称为虚拟主机。虚拟主机说明此过程。

映射

主机名由称为 DNS 服务器或域名服务器的服务器映射到 IP 地址。DNS 代表域名服务。在大型网络中,许多 DNS 服务器可以相互协作,以提供主机名和 IP 地址之间的映射。

参考资料:

百度百科-主机名

http代理主机名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于http代理主机名,HTTP代理主机名的作用和使用方法详解,maven为什么设置http代理,OkHttp源码解析 (三)——代理和路由,服务器名指什么,主机名是什么,是一样的吗的信息别忘了在本站进行查找喔。


数据运维技术 » HTTP代理主机名的作用和使用方法详解 (http代理主机名)