์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ํƒœ์Šคํฌ ํฌ์Šค (IETF) A. Hutton
Request for Comments: 7639 Unify
์นดํ…Œ๊ณ ๋ฆฌ: ํ‘œ์ค€ ํŠธ๋ž™ J. Uberti
ISSN: 2070-1721 Google
M. Thomson
Mozilla
2015๋…„ 8์›”

ALPN HTTP ํ—ค๋” ํ•„๋“œ


์š”์•ฝ

์ด ๋ช…์„ธ๋Š” HTTP CONNECT ์š”์ฒญ์ด ALPN ํ—ค๋” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋„์ด ์„ค์ •๋œ ํ›„์— ์‚ฌ์šฉ๋  ํ”„๋กœํ† ์ฝœ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”๋ชจ์˜ ์ƒํƒœ

์ด ๋ฌธ์„œ๋Š” ์ธํ„ฐ๋„ท ํ‘œ์ค€ ํŠธ๋ž™ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ํƒœ์Šคํฌ ํฌ์Šค(IETF)์˜ ์‚ฐ๋ฌผ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” IETF ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ•ฉ์˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ณต๊ฐœ ๊ฒ€ํ† ๋ฅผ ๊ฑฐ์ณค์œผ๋ฉฐ ์ธํ„ฐ๋„ท ์—”์ง€๋‹ˆ์–ด๋ง ์šด์˜ ๊ทธ๋ฃน(IESG)์˜ ์ถœํŒ ์Šน์ธ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ํ‘œ์ค€์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋Š” RFC 5741์˜ ์„น์…˜ 2์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ, ์ •์˜คํ‘œ ๋ฐ ์ด์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ์ •๋ณด๋Š” http://www.rfc-editor.org/info/rfc7639์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Copyright Notice

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

1. ์†Œ๊ฐœ

HTTP CONNECT ๋ฉ”์„œ๋“œ(์„น์…˜ 4.3.6์˜ [RFC7231]) ์€ ์ˆ˜์‹ ์ž๊ฐ€ ์‹๋ณ„๋œ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„๋กœ ํ„ฐ๋„์„ ์„ค์ •ํ•˜๊ณ  ๊ทธ ์ดํ›„ ํ„ฐ๋„์ด ๋‹ซํž ๋•Œ๊นŒ์ง€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ„ฐ๋„์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์ข…๋‹จ ๊ฐ„ ๊ฐ€์ƒ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ALPN HTTP ํ—ค๋” ํ•„๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ CONNECT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋œ ํ„ฐ๋„ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํ”„๋กœํ† ์ฝœ(๋˜๋Š” ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ)์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Application-Layer Protocol Negotiation (ALPN) ์‹๋ณ„์ž([RFC7301])๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

TLS(Transport Layer Security)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณดํ˜ธ๋˜๋Š” ํ„ฐ๋„์˜ ๊ฒฝ์šฐ, ํ—ค๋” ํ•„๋“œ๋Š” TLS ํ•ธ๋“œ์…ฐ์ดํฌ ๋‚ด์—์„œ ์ „๋‹ฌ๋  ๊ฒƒ๊ณผ ๋™์ผํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ ๋ ˆ์ด๋ธ”์„ ์šด๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค [RFC7301]. ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ, ๋ชจ๋“  ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ALPN ํ—ค๋” ํ•„๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ ์˜๋„์˜ ํ‘œ์‹œ๋งŒ์„ ์šด๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ALPN ์‹๋ณ„์ž๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ„ฐ๋„์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ๋ชจ์Œ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ํ—ค๋” ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜‘์ƒ์€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. TLS์—์„œ๋Š” ์ตœ์ข… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ ์„ ํƒ์ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ œ์‹œํ•œ ์„ ํƒ ์ง‘ํ•ฉ์—์„œ ์„œ๋ฒ„์— ์˜ํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ๋ฐ˜(์„œ๋ธŒ์ŠคํŠธ๋ ˆ์ดํŠธ)์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ๋‹ค๋ฅด๊ฒŒ ํ˜‘์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋Š” ํ„ฐ๋„๋ง๋œ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์ง€๋งŒ, ํ—ค๋” ํ•„๋“œ ๊ฐ’์— ๋”ฐ๋ผ ์ •์ฑ… ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋ก์‹œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ํŠธ๋ž˜ํ”ฝ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.1. ์š”๊ตฌ ์‚ฌํ•ญ ์–ธ์–ด

์ด ๋ฌธ์„œ์—์„œ "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", ๋ฐ "OPTIONAL"์ด๋ผ๋Š” ํ•ต์‹ฌ ๋‹จ์–ด๋“ค์€ RFC 2119์— ์„ค๋ช…๋œ ๋ฐ”์™€ ๊ฐ™์ด ํ•ด์„๋ฉ๋‹ˆ๋‹ค [RFC2119].

2. ALPN HTTP ํ—ค๋” ํ•„๋“œ

ํด๋ผ์ด์–ธํŠธ๋Š” CONNECT ์š”์ฒญ์—์„œ ALPN ํ—ค๋” ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ํ„ฐ๋„ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ํ„ฐ๋„ ๋‚ด์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

2.1. ํ—ค๋” ํ•„๋“œ ๊ฐ’

ํ”„๋กœํ† ์ฝœ ํ•„๋“œ์˜ ์œ ํšจํ•œ ๊ฐ’์€ [ALPN-IDS] ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ค๋ฉฐ, ์ด๋Š” [RFC7301]์— ์˜ํ•ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

2.2. ๊ตฌ๋ฌธ

ALPN ํ—ค๋” ํ•„๋“œ ๊ฐ’์˜ ABNF(Augmented Backus-Naur Form) ๊ตฌ๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ๋ฌธ์€ ์„น์…˜ 1.2์—์„œ ์ •์˜๋œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [RFC7230].

ALPN            = 1#protocol-id
protocol-id     = token ; percent-encoded ALPN protocol identifier

ALPN ํ”„๋กœํ† ์ฝœ ์ด๋ฆ„์€ ํ˜•์‹์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ œ์•ฝ์ด ์—†๋Š” ์˜ฅํ…Ÿ ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค. ํ† ํฐ์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ์˜ฅํ…Ÿ([RFC7230], ์„น์…˜ 3.2.6)์€ ์„น์…˜ 2.1์— ๋”ฐ๋ผ ํผ์„ผํŠธ ์ธ์ฝ”๋”ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [RFC3986]. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ํผ์„ผํŠธ ๋ฌธ์ž "%" (16์ง„์ˆ˜ 25)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ฅํ…Ÿ๋„ ํผ์„ผํŠธ ์ธ์ฝ”๋”ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ALPN ํ”„๋กœํ† ์ฝœ ์ด๋ฆ„์ด๋“  ์ •ํ™•ํžˆ ํ•œ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์ถ”๊ฐ€ ์ œ์•ฝ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:

  • ALPN ํ”„๋กœํ† ์ฝœ์˜ ์˜ฅํ…Ÿ์€ "%"๋ฅผ ์ œ์™ธํ•œ ์œ ํšจํ•œ ํ† ํฐ ๋ฌธ์ž์ธ ๊ฒฝ์šฐ ํผ์„ผํŠธ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  • ํผ์„ผํŠธ ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋Œ€๋ฌธ์ž 16์ง„์ˆ˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ œ์•ฝ์œผ๋กœ ์ˆ˜์‹ ์ž๋Š” ํ”„๋กœํ† ์ฝœ ์‹๋ณ„์ž๋ฅผ ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด ๋น„๊ต๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ:


  CONNECT www.example.com HTTP/1.1
  Host: www.example.com
  ALPN: h2, http%2F1.1
  

2.3. ์‚ฌ์šฉ๋ฒ•

ALPN ํ—ค๋” ํ•„๋“œ์—์„œ ALPN ์‹๋ณ„์ž๋Š” ๋‹จ์ผ ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์ด๋‚˜ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

TLS๋กœ ๋ณดํ˜ธ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ „๋‹ฌํ•˜๋Š” CONNECT ํ„ฐ๋„์˜ ๊ฒฝ์šฐ, ALPN ํ—ค๋” ํ•„๋“œ์˜ ๊ฐ’์€ TLS ClientHello ๋ฉ”์‹œ์ง€์—์„œ ์ „์†ก๋  ๋™์ผํ•œ ALPN ์‹๋ณ„์ž ๋ชฉ๋ก์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [RFC7301].

TLS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋“ฑ ํ”„๋กœํ† ์ฝœ ํ˜‘์ƒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ, ALPN ํ—ค๋” ํ•„๋“œ๋Š” ์˜๋„๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์ผ ALPN ํ”„๋กœํ† ์ฝœ ์‹๋ณ„์ž๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ํ”„๋กœํ† ์ฝœ ํ˜‘์ƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ, ALPN ํ—ค๋” ํ•„๋“œ๋Š” ํ˜‘์ƒ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋Š” ALPN ํ—ค๋” ํ•„๋“œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ CONNECT ํ„ฐ๋„ ์š”์ฒญ์„ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP ๊ณ„์ธต์—์„œ ํ”„๋กœํ† ์ฝœ ์ •๋ณด๋ฅผ ๋…ธ์ถœํ•˜๋ฉด ํ”„๋ก์‹œ๋Š” ๋” ์ผ์ฐ ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•˜๊ณ (์˜ˆ: 403 ์ƒํƒœ ์ฝ”๋“œ์™€ ๊ฐ™์€) ๋” ๋‚˜์€ ์˜ค๋ฅ˜ ๋ณด๊ณ ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ALPN ํ—ค๋” ํ•„๋“œ๋Š” ์œ„์กฐ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์š”์ฒญ ์Šน์ธ์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ๊ทผ๊ฑฐ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋Š” ์‚ฌ์šฉ ์ค‘์ธ ํ”„๋กœํ† ์ฝœ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ท์„ ๊ฒ€์‚ฌํ•˜๋ ค ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋ก์‹œ๊ฐ€ ๊ฐ ALPN ์‹๋ณ„์ž๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•จ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. TLS์™€ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์€ ํ˜‘์ƒ๋œ ํ”„๋กœํ† ์ฝœ์„ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ํ˜‘์ƒ ์„ธ๋ถ€์‚ฌํ•ญ์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉฐ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ CONNECT ํ„ฐ๋„์„ ์ฐจ๋‹จํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋Š” ALPN ํ—ค๋” ํ•„๋“œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ๋˜๋Š” ์šฐ์„ ์ˆœ์œ„ ์ง€์ • ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. IANA ๊ณ ๋ ค์‚ฌํ•ญ

HTTP ํ—ค๋” ํ•„๋“œ๋Š” IANA๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” "Permanent Message Header Field Names" ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค [MSG-HDRS]. ์ด ๋ฌธ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ALPN ํ—ค๋” ํ•„๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค(๋“ฑ๋ก ์ ˆ์ฐจ๋Š” RFC3864์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค):

Header Field Name:
ALPN
Protocol:
http
Status:
Standard
Reference:
๋ฌธ์„œ์˜ ์„น์…˜ 2 (RFC 7639)
Change Controller:
IETF (iesg@ietf.org) - Internet Engineering Task Force

4. ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

HTTP CONNECT๋ฅผ TURN(Traversal Using Relays around NAT, [RFC5766]) ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์„น์…˜ 4.3.6์˜ ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์„น์…˜์€ "ํŠนํžˆ ๋Œ€์ƒ์ด ์›น ํŠธ๋ž˜ํ”ฝ์„ ์˜๋„ํ•˜์ง€ ์•Š์€ ์ž˜ ์•Œ๋ ค์ง„ ๋˜๋Š” ์˜ˆ์•ฝ๋œ TCP ํฌํŠธ์ธ ๊ฒฝ์šฐ ์ž„์˜์˜ ์„œ๋ฒ„์— ํ„ฐ๋„์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์ƒ๋‹นํ•œ ์œ„ํ—˜์ด ์žˆ๋‹ค. ... CONNECT๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋ก์‹œ๋Š” ์ œํ•œ๋œ ์•Œ๋ ค์ง„ ํฌํŠธ ์ง‘ํ•ฉ์ด๋‚˜ ์•ˆ์ „ํ•œ ์š”์ฒญ ๋Œ€์ƒ์˜ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ๋กœ ์‚ฌ์šฉ์„ ์ œํ•œํ•ด์•ผ ํ•œ๋‹ค."๊ณ  ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์— ์„ค๋ช…๋œ ALPN ํ—ค๋” ํ•„๋“œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ HTTP ํ”„๋ก์‹œ๋Š” ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ—ค๋”๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์ œ๊ณต๋œ ๊ฒฝ์šฐ์—๋„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ํ•„๋“œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋ฌด์‹œ๋˜๋Š” ๊ฒฝ์šฐ, ํ”„๋ก์‹œ๋Š” ํ„ฐ๋„์˜ ๋ชฉ์ ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ„ฐ๋„์— ๋Œ€ํ•œ ์Šน์ธ ๊ฒฐ์ •์˜ ์ž…๋ ฅ์œผ๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ํ”„๋ก์‹œ๊ฐ€ ALPN ํ—ค๋” ํ•„๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์™€ ๊ตฌ๋ณ„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ALPN ํ—ค๋” ํ•„๋“œ์—๋Š” ๊ธฐ๋ฐ€์„ฑ ๋ณดํ˜ธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ALPN ์‹๋ณ„์ž๋Š” ๋ณด๋‚ด์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„น์…˜ 5 ์ฐธ์กฐ) [RFC7301].

ALPN ํ—ค๋” ํ•„๋“œ์˜ ๊ฐ’์€ ํด๋ผ์ด์–ธํŠธ์— ์˜ํ•ด ์œ„์กฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ„ฐ๋„์„ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ(์˜ˆ: TLS), ํ”„๋ก์‹œ๋Š” ์ฃผ์žฅ๋œ ํ”„๋กœํ† ์ฝœ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ธ์ง€ ์ง์ ‘ ๊ฒ€์‚ฌํ•˜์—ฌ ํ™•์ธํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ”„๋ก์‹œ๋Š” ํŠธ๋ž˜ํ”ฝ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [TRAFFIC]. ๋”ฐ๋ผ์„œ ํ”„๋ก์‹œ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ALPN ํ—ค๋” ํ•„๋“œ ๊ฐ’์„ ์ •์ฑ… ์ž…๋ ฅ์œผ๋กœ์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

5. ์ฐธ์กฐ

5.1. ๊ทœ๋ฒ” ์ฐธ์กฐ

[RFC2119]
Bradner, S., โ€œRFC์—์„œ ์š”๊ตฌ ์ˆ˜์ค€์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๋‹จ์–ด ์‚ฌ์šฉโ€, BCP 14, RFC 2119, DOI 10.17487/RFC2119, 1997๋…„ 3์›”, <http://www.rfc-editor.org/info/rfc2119>.
[RFC3864]
Klyne, G., Nottingham, M., and J. Mogul, โ€œ๋ฉ”์‹œ์ง€ ํ—ค๋” ํ•„๋“œ ๋“ฑ๋ก ์ ˆ์ฐจโ€, BCP 90, RFC 3864, DOI 10.17487/RFC3864, 2004๋…„ 9์›”, <http://www.rfc-editor.org/info/rfc3864>.
[RFC3986]
Berners-Lee, T., Fielding, R., and L. Masinter, โ€œํ†ตํ•ฉ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž(URI): ์ผ๋ฐ˜ ๊ตฌ๋ฌธโ€, STD 66, RFC 3986, DOI 10.17487/RFC3986, 2005๋…„ 1์›”, <http://www.rfc-editor.org/info/rfc3986>.
[RFC7230]
Fielding, R. and J. Reschke, โ€œHypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routingโ€, RFC 7230, DOI 10.17487/RFC7230, 2014๋…„ 6์›”, <http://www.rfc-editor.org/info/rfc7230>.
[RFC7231]
Fielding, R. and J. Reschke, โ€œHypertext Transfer Protocol (HTTP/1.1): Semantics and Contentโ€, RFC 7231, DOI 10.17487/RFC7231, 2014๋…„ 6์›”, <http://www.rfc-editor.org/info/rfc7231>.
[RFC7301]
Friedl, S., Popov, A., Langley, A., and E. Stephan, โ€œTransport Layer Security (TLS) Application-Layer Protocol Negotiation Extensionโ€, RFC 7301, DOI 10.17487/RFC7301, 2014๋…„ 7์›”, <http://www.rfc-editor.org/info/rfc7301>.

์ €์ž ์ฃผ์†Œ

Andrew Hutton
Unify
Technology Drive
Nottingham, NG9 1LA
United Kingdom
EMail: andrew.hutton@unify.com
Justin Uberti
Google
747 6th Street South
Kirkland, WA 98033
United States
EMail: justin@uberti.name
Martin Thomson
Mozilla
331 East Evelyn Avenue
Mountain View, CA 94041
United States
EMail: martin.thomson@gmail.com