Skip to content

Commit

Permalink
[zh-cn] update translation of 'proxy servers and tunneling' (#24999)
Browse files Browse the repository at this point in the history
Co-authored-by: A1lo <[email protected]>
  • Loading branch information
jasonren0403 and yin1999 authored Dec 12, 2024
1 parent 3626e32 commit d815c81
Showing 1 changed file with 32 additions and 36 deletions.
68 changes: 32 additions & 36 deletions files/zh-cn/web/http/proxy_servers_and_tunneling/index.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,77 @@
---
title: Proxy servers and tunneling
title: 代理服务器与隧道
slug: Web/HTTP/Proxy_servers_and_tunneling
l10n:
sourceCommit: 83f30ecaaeb6227dc0d4551f71eb8be1cacb8e94
---

{{HTTPSidebar}}

当访问不同的网站时,代理服务器和 HTTP 管道帮助访问万维网 . 一个代理可以是用户的本地计算机,或者介于用户计算机和终端服务器之间的地方。本章节概述一些关于代理和相关配置选项的基础知识
当访问不同的网站时,代理服务器和 HTTP 隧道为访问万维网上的内容提供了便利。代理可以在用户的本地计算机上,也可以在用户计算机和互联网上的目标服务器之间的任何地方。本页概述了有关代理的一些基本知识,并介绍了一些配置选项

有两种代理:**正向代理** (如:管道、网关) **反向代理** (用于控制和保证服务器的负载均衡、认证、加密和缓存)
有两种代理:**正向代理**(隧道、网关**反向代理**(用于控制和保护对服务器的访问,以实现负载均衡、身份验证、解密或缓存)

## 正向代理

正向代理,也可以叫“网关”或者仅仅为一个或多个客户端提供代理服务的“代理”。在互联网上像这样的代理不计其数。他们存储并转发网络服务(如 DNS,网页)以减少和控制大家所使用的带宽。
正向代理或网关,或简称“代理”,可为一个或一组客户端提供代理服务。在互联网上像这样的代理不计其数。它们存储并转发网络服务(如 DNS,网页)以减少和控制大家所使用的带宽。

正向代理可以是匿名代理,并允许用户在浏览 web 或者使用其他服务时隐藏自己的 IP。 [TOR](https://www.torproject.org/) (洋葱路由), 匿名地在多个代理间路由因特网
正向代理可以是匿名代理,并允许用户在浏览 web 或者使用其他服务时隐藏自己的 IP。例如,[TOR(洋葱路由)](https://www.torproject.org/)匿名地在多个代理间路由互联网流量

## 反向代理

顾名思义,反向代理所做的事情与正向代理相反:正向代理代表客户端(或者发送请求的主机),而反向代理代表服务器。正向代理可以隐藏客户端的身份,而反向代理可以隐藏服务器的身份。反向代理的用处很多,例如
顾名思义,反向代理所做的事情与正向代理相反:正向代理代表客户端(或者发送请求的主机)。正向代理可以隐藏客户端的身份,而反向代理可以隐藏服务器的身份。反向代理有多种用途,其中包括

- 负载均衡:在多个服务器之间分发负载
- 缓存静态内容:缓存图片等静态内容,为服务器分担压力
- 负载均衡:在多个服务器之间分发负载
- 缓存静态内容:缓存图片等静态内容,为服务器分担压力
- 压缩:压缩和优化内容以加快传输的速度。

## 通过代理转发客户端消息

代理可以将请求地址设置为自身的 IP,这可以隐匿客户端的身份。然而,这也会导致原始请求的部分信息丢失。发起请求的客户端的 IP 地址可以用来调试、统计或者生成基于位置的内容。通常使用如下 HTTP 头来暴露这部分信息
代理可以将请求地址设置为自身的 IP,这可以隐匿客户端的身份。然而,这也会导致原始请求的部分信息丢失。发起请求的客户端的 IP 地址可以用来调试、统计或者生成基于位置的内容。通常使用如下 HTTP 标头来暴露这部分信息

标准头部
标准标头

- {{HTTPHeader("Forwarded")}}
- : Contains information from the client-facing side of proxy servers that is altered or lost when a proxy is involved in the path of the request.
- : 包含代理服务器面向客户端的信息,这些信息在代理参与请求路径时会被更改或丢失。

Or the de-facto standard versions:
或使用事实上的标准版本:

- {{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}
- : Identifies the originating IP addresses of a client connecting to a web server through an HTTP proxy or a load balancer.
- : 标识通过 HTTP 代理或负载均衡器连接到 Web 服务器的客户端的源 IP 地址。
- {{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}
- : Identifies the original host requested that a client used to connect to your proxy or load balancer.
- : 标识客户请求的用来连接代理或负载均衡器的原始主机。
- {{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}
- : identifies the protocol (HTTP or HTTPS) that a client used to connect to your proxy or load balancer.
- : 标识客户端连接代理或负载均衡器所用的协议(HTTP HTTPS)。

To provide information about the proxy itself (not about the client connecting to it), the `Via` header can be used.
要提供代理本身的信息(而不是连接到代理的客户端的信息),可以使用 `Via` 标头。

- {{HTTPHeader("Via")}}
- : Added by proxies, both forward and reverse proxies, and can appear in the request headers and the response headers.
- : 由代理(包括正向代理和反向代理)添加,可出现在请求标头和响应标头中。

## HTTP tunneling
## HTTP 隧道

Tunneling transmits private network data and protocol information through public network by encapsulating the data. HTTP tunneling is using a protocol of higher level (HTTP) to transport a lower level protocol (TCP).
隧道技术通过封装数据,在公共网络中传输专用网络数据和协议信息。HTTP 隧道传输是使用高级协议(HTTP)传输低级协议(TCP)。

The HTTP protocol specifies a request method called {{HTTPMethod("CONNECT")}}. It starts two-way communications with the requested resource and can be used to open a tunnel. This is how a client behind an HTTP proxy can access websites using SSL (i.e. HTTPS, port 443). Note, however, that not all proxy servers support the `CONNECT` method or limit it to port 443 only.
HTTP 协议指定了一种名为 {{HTTPMethod("CONNECT")}} 的请求方法。该方法启动与请求资源的双向通信,并可用于打开隧道。这就是 HTTP 代理后的客户端如何使用 SSL(即 HTTPS,端口 443)访问网站的方法。但请注意,并非所有代理服务器都支持 `CONNECT` 方法,或仅限于 443 端口。

See also the [HTTP tunnel article on Wikipedia](https://en.wikipedia.org/wiki/HTTP_tunnel).
参见维基百科上的 [HTTP 隧道](https://zh.wikipedia.org/wiki/HTTP隧道)

## Proxy Auto-Configuration (PAC)
## 代理自动配置(PAC

A [Proxy Auto-Configuration (PAC)](/zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file) file is a [JavaScript](/zh-CN/docs/Web/JavaScript) function that determines whether web browser requests (HTTP, HTTPS, and FTP) go directly to the destination or are forwarded to a web proxy server. The JavaScript function contained in the PAC file defines the function:
[代理自动配置(PAC](/zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file) 文件是一个 [JavaScript](/zh-CN/docs/Web/JavaScript) 函数,用于确定 web 浏览器请求(HTTPHTTPS FTP)是直接连接到目的地还是转发到 web 代理服务器。PAC 文件中包含的 JavaScript 函数定义了该函数:

The auto-config file should be saved to a file with a `.pac` filename extension:
自动配置文件应保存为扩展名为 `.pac` 的文件:`proxy.pac`

```plain
proxy.pac
```

And the MIME type set to:

```plain
application/x-ns-proxy-autoconfig
```
其 MIME 类型需要设置为 `application/x-ns-proxy-autoconfig`

The file consists of a function called `FindProxyForURL`. The example below will work in an environment where the internal DNS server is set up so that it can only resolve internal host names, and the goal is to use a proxy only for hosts that aren't resolvable:
该文件包含一个名为 `FindProxyForURL` 的函数。下面的示例将在内部 DNS 服务器设置为只能解析内部主机名的环境中运行,目标是只对无法解析的主机使用代理:

```js
function FindProxyForURL(url, host) {
if (isResolvable(host)) return "DIRECT";
else return "PROXY proxy.mydomain.com:8080";
if (isResolvable(host)) {
return "DIRECT";
}
return "PROXY proxy.mydomain.com:8080";
}
```

Expand Down

0 comments on commit d815c81

Please sign in to comment.