---
title: "HTTP와 HTTPS"
description: "Potatso가 지원하는 HTTP·HTTPS 프록시 옵션, 링크, 기능입니다."
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTP와 HTTPS

HTTP 프록시는 HTTP `CONNECT` 요청을 받으면 대신 연결을 열어 주는 서버입니다. **HTTPS** 프록시는 같은 서버에 TLS로 접속하는 것이므로 프록시까지의 연결도 암호화됩니다. Potatso는 사용자 이름과 암호가 있든 없든 둘 다 연결할 수 있습니다.

HTTP 프록시는 TCP만 전달합니다. 나머지 트래픽이 어떻게 되는지는 [UDP](#udp)를 참고하세요.

HTTP 또는 HTTPS 프록시는 직접 추가하거나, [`http://` 또는 `https://` 링크](#links)로 추가하거나, 다음을 가져와서 추가할 수 있습니다.

- Clash 또는 Mihomo 구독(`type: http`),
- Surge 구성(`http`와 `https`),
- Xray 또는 V2Ray 구성(`http` 아웃바운드).

HTTPS 프록시를 직접 추가하려면 **HTTP**를 선택하고 **TLS**를 켭니다.

## 설정 {#settings}

| 설정 | 설명 |
| --- | --- |
| 서버, 포트 | 프록시의 주소와 포트. IPv6 주소도 사용할 수 있습니다. |
| 사용자 이름, 암호 | 선택 사항. Basic 인증으로 전송됩니다. |
| TLS | HTTPS 프록시이면 켭니다. |
| 서버 이름 | HTTPS 전용, 선택 사항. TLS 핸드셰이크에서 보내고 인증서와 대조하는 이름. 비워 두면 서버 주소를 사용합니다. |
| 인증서 확인 건너뛰기 | HTTPS 전용. 모든 인증서를 허용합니다. 테스트할 때만 사용하세요. |
| 인증서 핀 | HTTPS 전용, 선택 사항. 프록시 인증서의 SHA-256 지문으로, 16진수 64자리입니다. 핀을 지정하면 Potatso는 자체 서명 인증서를 포함해 핀으로 지정한 인증서만 허용하고 그 외에는 허용하지 않습니다. |

암호에는 `:`와 ASCII가 아닌 문자를 포함해 어떤 문자든 쓸 수 있습니다. 사용자 이름에는 `:`를 쓸 수 없습니다.

### 사용자 지정 헤더 {#headers}

Clash, Mihomo, Xray 구성에서는 제공업체가 요구하는 `User-Agent` 같은 헤더를 `CONNECT` 요청에 추가할 수 있습니다. Potatso는 프록시를 가져올 때 이를 유지하고 모든 연결에서 보냅니다. `Host` 헤더는 Potatso가 보내는 헤더를 대체합니다. 앱에서는 헤더를 추가하거나 편집할 수 없습니다.

### 인증서 {#certificates}

HTTPS 프록시에는 기기가 신뢰하는 인증서가 필요합니다. 단, [인증서 핀](#settings)을 지정하거나 **인증서 확인 건너뛰기**를 켠 경우는 예외입니다.

Potatso는 다음을 지원하지 않습니다.

- HTTPS 프록시용 사용자 지정 CA 인증서: 대신 프록시의 인증서를 핀으로 지정하세요.
- TLS 클라이언트 인증서(Clash의 `certificate`와 `private-key`): 이것이 필요한 프록시는 가져오지 않습니다.
- ALPN 목록: Potatso는 프록시와 항상 HTTP/1.1로 통신합니다.

## UDP {#udp}

HTTP 프록시는 TCP만 전달하므로 Potatso는 UDP를 HTTP 프록시로 보내지 않습니다. UDP는 QUIC, 음성 및 영상 통화, 많은 게임이 사용합니다.

- 규칙을 쓰는 경우 Potatso는 UDP를 HTTP 또는 HTTPS 프록시로 보내는 규칙을 건너뛰고, 그다음에 매칭되는 규칙이 결정합니다. 다른 규칙과 맞지 않는 UDP는 직접 전송됩니다.
- 전역 모드에서는 모든 트래픽이 프록시를 거쳐야 하므로 UDP가 작동하지 않습니다.

UDP도 프록시로 보내려면 SOCKS5나 Shadowsocks처럼 UDP를 전달하는 프로토콜의 서버를 사용하세요.

## 기능 지원 {#features}

| 기능 | 지원 |
| --- | --- |
| IPv4, IPv6, 도메인 대상으로의 `CONNECT` 터널([RFC 9110 §9.3.6](https://www.rfc-editor.org/rfc/rfc9110#section-9.3.6)) | ✅ |
| Basic 인증([RFC 7617](https://www.rfc-editor.org/rfc/rfc7617)), UTF-8 암호 | ✅ |
| Digest 인증([RFC 7616](https://www.rfc-editor.org/rfc/rfc7616)) | ❌ |
| HTTPS 프록시(TLS 위의 HTTP) | ✅ 서버 이름, 인증서 핀, 인증서 확인 건너뛰기 지원 |
| 사용자 지정 `CONNECT` 헤더 | ✅ 가져오기에서 |
| IPv6 프록시 주소 | ✅ |
| HTTP/2 `CONNECT`([RFC 9113 §8.5](https://www.rfc-editor.org/rfc/rfc9113#section-8.5)) | ❌ |
| HTTP/3 `CONNECT`([RFC 9114 §4.4](https://www.rfc-editor.org/rfc/rfc9114#section-4.4)) | ❌ |
| 프록시를 통한 UDP(`CONNECT-UDP`, [RFC 9298](https://www.rfc-editor.org/rfc/rfc9298)) | ❌ |
| `CONNECT` 없는 일반 HTTP 포워딩(absolute-form 요청) | ❌ Potatso는 모든 연결에 `CONNECT`를 사용합니다 |
| TLS 클라이언트 인증서, 사용자 지정 CA, ALPN | ❌ |

지원하는 모든 기능은 실제 프록시 서버인 [tinyproxy](https://tinyproxy.github.io/), [sing-box](https://sing-box.sagernet.org/), [Xray](https://xtls.github.io/), [Mihomo](https://wiki.metacubex.one/)로 테스트했습니다.

일반 웹 요청만 전달하는 웹 포트가 아니라 서버의 `CONNECT` 포트를 사용하세요. 일부 프록시는 포트 443으로만 `CONNECT`를 허용합니다. 프록시를 통해 일부 사이트만 열린다면 제공업체에 `CONNECT` 포트를 제한하는지 문의하세요.

## 링크 {#links}

`http://` 또는 `https://` 링크는 프록시 전체를 한 줄에 담습니다.

```text
http://user:password@host:port#name
https://user:password@host:port?sni=…&insecure=1#name
```

| 부분 | 설명 |
| --- | --- |
| `user:password` | 선택 사항. 암호의 `:`, `@` 및 기타 특수 문자는 퍼센트 인코딩합니다. 예를 들어 `p:ss`는 `p%3Ass`로 씁니다. |
| `host` | 프록시 주소. IPv6 주소는 `[2001:db8::1]`처럼 대괄호로 묶습니다. |
| `port` | 프록시 포트. |
| `sni` | HTTPS 전용, 선택 사항. [서버 이름](#settings). Potatso는 `peer`와 `servername`도 읽습니다. |
| `insecure` | HTTPS 전용, 선택 사항. `1`이면 인증서 확인 건너뛰기를 켭니다. Potatso는 `allowInsecure`와 `skip-cert-verify`도 읽습니다. |
| `name` | 선택 사항. Potatso에서 표시할 프록시 이름. |

링크에는 인증서 핀이나 사용자 지정 헤더를 담을 수 없습니다. Potatso는 `://`와 `#` 사이의 모든 내용을 Base64로 인코딩하던 이전 형식도 가져옵니다.

```text
http://base64(user:password@host:port)#name
```

### 예시 {#link-examples}

암호가 없는 프록시:

```text
http://proxy.example.com:8080#Open
```

사용자 이름이 `alice`이고 암호가 `s3cret`인 프록시:

```text
http://alice:s3cret@proxy.example.com:8080#Basic
```

퍼센트 인코딩한 암호 `p:ss wörd`:

```text
http://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:8080#Encoded
```

HTTPS 프록시:

```text
https://alice:s3cret@proxy.example.com:443#TLS
```

IP 주소로 접속하고 인증서 이름이 `proxy.example.com`인 HTTPS 프록시:

```text
https://alice:s3cret@203.0.113.10:443?sni=proxy.example.com#SNI
```

자체 서명 인증서를 쓰는 HTTPS 프록시:

```text
https://proxy.example.com:443?insecure=1#Self-signed
```

IPv6 주소를 쓰는 프록시:

```text
http://[2001:db8::1]:8080#IPv6
```

기본 프록시의 이전 형식:

```text
http://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjgwODA#Legacy
```

Source: https://potatso.com/docs/ko/protocols/http/index.mdx
