| ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค (IETF) | J. Reschke |
| ์์ฒญ ์๊ฒฌ(Request for Comments): 7617 | greenbytes |
| ๋์ฒด ๋์: 2617 | 2015๋ 9์ |
| ๋ถ๋ฅ: ํ์ค ํธ๋ | |
| ISSN: 2070-1721 |
'Basic' HTTP ์ธ์ฆ ์คํด
์ด๋ก
์ด ๋ฌธ์๋ ์๊ฒฉ์ฆ๋ช ์ ์ฌ์ฉ์ ID/๋น๋ฐ๋ฒํธ ์์ผ๋ก ์ ์กํ๋ฉฐ Base64๋ก ์ธ์ฝ๋ฉํ๋ "Basic" ํ์ดํผํ ์คํธ ์ ์ก ํ๋กํ ์ฝ(HTTP) ์ธ์ฆ ์คํด์ ์ ์ํฉ๋๋ค.
์ด ๋ฉ๋ชจ์ ์ํ
์ด ๋ฌธ์๋ ์ธํฐ๋ท ํ์ค ํธ๋ ๋ฌธ์์ ๋๋ค.
์ด ๋ฌธ์๋ ์ธํฐ๋ท ์์ง๋์ด๋ง ํ์คํฌ ํฌ์ค(IETF)์ ์ฐ๋ฌผ์ ๋๋ค. ์ด๋ IETF ์ปค๋ฎค๋ํฐ์ ํฉ์๋ฅผ ๋ฐ์ํ๋ฉฐ, ๊ณต๊ฐ ๊ฒํ ๋ฅผ ๊ฑฐ์ณ ์ธํฐ๋ท ์์ง๋์ด๋ง ์ด์ ๊ทธ๋ฃน(IESG)์ ๊ฒ์ ์น์ธ์ ๋ฐ์์ต๋๋ค. ์ธํฐ๋ท ํ์ค์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ RFC 5741 ์น์ 2์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์์ ํ์ฌ ์ํ, ์ ์ ์ฌํญ(errata), ๋ฐ ํผ๋๋ฐฑ ์ ๊ณต ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๋ http://www.rfc-editor.org/info/rfc7617์์ ํ์ธํ ์ ์์ต๋๋ค.
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.
This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
1. ์๊ฐ
์ด ๋ฌธ์๋ ์ฌ์ฉ์ ID/๋น๋ฐ๋ฒํธ ์์ Base64๋ก ์ธ์ฝ๋ฉํ์ฌ ์ ์กํ๋ "Basic" ํ์ดํผํ ์คํธ ์ ์ก ํ๋กํ ์ฝ(HTTP) ์ธ์ฆ ์คํด์ ์ ์ํฉ๋๋ค(HTTP ์ธ์ฆ ์คํด์ [RFC7235]์ ์ ์๋์ด ์์ต๋๋ค).
์ด ์คํด์ ์ฌ์ฉ์ ID์ ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ฌธ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๊ธฐ ๋๋ฌธ์, TLS(Transport Layer Security, [RFC5246])์ ๊ฐ์ ์ธ๋ถ์ ์์ ํ ์์คํ ๊ณผ ํจ๊ป ์ฌ์ฉ๋์ง ์๋ ํ ์์ ํ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง ์์ต๋๋ค.
"Basic" ์คํด์ ์ด์ ์ Section 2 of [RFC2617]์ ์ ์๋์ด ์์์ต๋๋ค. ์ด ๋ฌธ์๋ ์ ์๋ฅผ ๊ฐฑ์ ํ๊ณ , 'charset' ์ธ์ฆ ๋งค๊ฐ๋ณ์(Section 2.1)๋ฅผ ๋์ ํ์ฌ ๊ตญ์ ํ ๋ฌธ์ ๋ ๋ค๋ฃน๋๋ค.
RFC 2617์ ๊ฐฑ์ ํ๋ ๋ค๋ฅธ ๋ฌธ์๋ก๋ "Hypertext Transfer Protocol (HTTP/1.1): Authentication" ([RFC7235], ์ธ์ฆ ํ๋ ์์ํฌ ์ ์), "HTTP Digest Access Authentication" ([RFC7616], "Digest" ์ธ์ฆ ์คํด ์ ์ ๊ฐฑ์ ), ๋ฐ "HTTP Authentication-Info and Proxy-Authentication-Info Response Header Fields" ([RFC7615])๊ฐ ์์ต๋๋ค. ์ด ๋ค ๋ฌธ์๋ฅผ ํฉํ๋ฉด RFC 2617์ ํ๊ธฐ๋ฉ๋๋ค.
1.1. ์ฉ์ด ๋ฐ ํ๊ธฐ
์ด ๋ฌธ์์์ ์ฌ์ฉ๋ ํค์๋ "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", ๋ฐ "OPTIONAL"์ [RFC2119]์ ์ค๋ช ๋ ๋๋ก ํด์๋ฉ๋๋ค.
"protection space"์ "realm" ์ฉ์ด๋ RFC7235 ์น์ 2.2์ ์ ์๋์ด ์์ต๋๋ค.
"(character) repertoire" ๋ฐ "character encoding scheme" ์ฉ์ด๋ RFC6365 ์น์ 2์ ์ ์๋์ด ์์ต๋๋ค.
2. 'Basic' ์ธ์ฆ ์คํด
Basic ์ธ์ฆ ์คํด์ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ ๋ณดํธ ๊ณต๊ฐ("realm")์ ๋ํด ์ฌ์ฉ์ ID์ ๋น๋ฐ๋ฒํธ๋ก ์์ ์ ์ธ์ฆํด์ผ ํ๋ค๋ ๋ชจ๋ธ์ ๊ธฐ๋ฐํฉ๋๋ค. realm ๊ฐ์ ํด๋น ์๋ฒ์์ ๋ค๋ฅธ realm๊ณผ ๋จ์ ๋๋ฑ ๋น๊ต๋ง ๊ฐ๋ฅํ ์์ ํ์ ๋ฌธ์์ด์ ๋๋ค. ์๋ฒ๋ ์์ฒญ๋ ๋ฆฌ์์ค์ ์ ์ฉ๋๋ ๋ณดํธ ๊ณต๊ฐ์ ๋ํด ์ฌ์ฉ์ ID์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฒ์ฆํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
Basic ์ธ์ฆ ์คํด์ ์ธ์ฆ ํ๋ ์์ํฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํ์ฉํฉ๋๋ค.
์ฑ๋ฆฐ์ง์์๋:
- ์คํด ์ด๋ฆ์ "Basic"์ ๋๋ค.
- ์ธ์ฆ ๋งค๊ฐ๋ณ์ 'realm'์ ํ์(REQUIRED)์ ๋๋ค ([RFC7235], Section 2.2).
- ์ธ์ฆ ๋งค๊ฐ๋ณ์ 'charset'์ ์ ํ์ (OPTIONAL)์ ๋๋ค (์์ธํ ๋ด์ฉ์ Section 2.1 ์ฐธ์กฐ).
- ๋ค๋ฅธ ์ธ์ฆ ๋งค๊ฐ๋ณ์๋ ์ ์๋์ด ์์ง ์์ต๋๋ค โ ์ ์ ์๋ ๋งค๊ฐ๋ณ์๋ ์์ ์๊ฐ ๋ฌด์ํด์ผ(MUST) ํ๋ฉฐ, ์ ๋งค๊ฐ๋ณ์๋ ์ด ๋ช ์ธ๋ฅผ ๊ฐ์ ํด์ผ๋ง ์ ์๋ ์ ์์ต๋๋ค.
๋ํ ์ฑ๋ฆฐ์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฑํ๋ ๋ณต์ก์ฑ์ ๋ํด์๋ RFC7235 ์น์ 4.1์ ์ฐธ์กฐํ์ญ์์ค.
์คํด ๋ฐ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ๋น๊ต๋ฉ๋๋ค.
์๊ฒฉ์ฆ๋ช ์๋ RFC7235 ์น์ 2.1์ ์ ์๋ "token68" ๋ฌธ๋ฒ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฐ์ ์๋์ ์ ์๋ ๋๋ก user-id์ password์ ๊ธฐ์ดํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค.
์ธ์ฆ ๊ณต๊ฐ ๋ด์ URI์ ๋ํ ์์ฒญ ์์ ์ ์๊ฒฉ์ฆ๋ช ์ด ์๋ ๊ฒฝ์ฐ, ์๋ฒ๋ 401 (Unauthorized) ์ํ ์ฝ๋์ WWW-Authenticate ํค๋ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฆฐ์ง๋ฅผ ์๋ตํ ์ ์์ต๋๋ค([RFC7235], Section 3.1).
์๋ฅผ ๋ค๋ฉด:
HTTP/1.1 401 Unauthorized Date: Mon, 04 Feb 2014 16:50:53 GMT WWW-Authenticate: Basic realm="WallyWorld"
์ฌ๊ธฐ์ "WallyWorld"๋ ์๋ฒ๊ฐ ๋ณดํธ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ํ ๋นํ ๋ฌธ์์ด์ ๋๋ค.
ํ๋ก์๋ 407 (Proxy Authentication Required) ์ํ ์ฝ๋์ Proxy-Authenticate ํค๋ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌํ ์ฑ๋ฆฐ์ง๋ก ์๋ตํ ์ ์์ต๋๋ค([RFC7235], Section 3.2).
๊ถํ์ ์ป๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๋
- ์ฌ์ฉ์๋ก๋ถํฐ user-id์ password๋ฅผ ์ป๊ณ ,
- user-id, ๋จ์ผ ์ฝ๋ก (":"), password๋ฅผ ์ฐ๊ฒฐํ์ฌ user-pass๋ฅผ ๊ตฌ์ฑํ๊ณ ,
- user-pass๋ฅผ ์ฅํ ์ํ์ค๋ก ์ธ์ฝ๋ฉํ๊ณ (์๋์ ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด ๋ ผ์๋ฅผ ์ฐธ์กฐ),
- ์ด ์ฅํ ์ํ์ค๋ฅผ Base64([RFC4648], Section 4)๋ก ์ธ์ฝ๋ฉํ์ฌ US-ASCII ๋ฌธ์ ์ํ์ค๋ก ๋ณํํ์ฌ basic-credentials๋ฅผ ์ป์ต๋๋ค([RFC0020]).
์ด ์ธ์ฆ ์คํด์ ์๋ ์ ์๋ user-pass๋ฅผ ์ฅํ ์ํ์ค๋ก ๋ณํํ ๋ ์ฌ์ฉํ ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด์ ๋ช ์ํ์ง ์์์ต๋๋ค. ์ค์ ๋ก ๋๋ถ๋ถ ๊ตฌํ์ฒด๋ ISO-8859-1([ISO-8859-1]) ๊ฐ์ ๋ก์ผ์ผ๋ณ ์ธ์ฝ๋ฉ์ด๋ UTF-8([RFC3629])์ ์ ํํ์ต๋๋ค. ์ด์ ๊ณผ์ ํธํ์ฑ ๋๋ฌธ์ ์ด ๋ช ์ธ๋ ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ์ US-ASCII๊ณผ ํธํ๋๋ ํ(US-ASCII ๋ฌธ์๋ฅผ ๋จ์ผ ์ฅํ ์ผ๋ก ๋งคํํ๋ ๊ฒฝ์ฐ) ๋ฏธ์ ์๋ก ๋จ๊น๋๋ค.
user-id์ password์๋ ์ด๋ค ์ ์ด ๋ฌธ์๋ ํฌํจ๋์ด์๋ ์ ๋ฉ๋๋ค(MUST NOT) (์์ธํ ๋ด์ฉ์ RFC5234 Appendix B.1์ "CTL" ์ฐธ์กฐ).
๋ํ user-id์ ์ฝ๋ก ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ๋ ๋ฌดํจ์ ๋๋ค. user-pass ๋ฌธ์์ด์์ ์ฒซ ๋ฒ์งธ ์ฝ๋ก ์ด user-id์ password๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ๋๋ค; ์ฒซ ๋ฒ์งธ ์ฝ๋ก ์ดํ์ ํ ์คํธ๋ ๋น๋ฐ๋ฒํธ์ ์ผ๋ถ๋ก ์ทจ๊ธ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฝ๋ก ์ ํฌํจํ user-id๋ user-pass ๋ฌธ์์ด์ ์ธ์ฝ๋ฉํ ์ ์์ต๋๋ค.
๋ง์ ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ user-id์ ์ฝ๋ก ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ์ง ์๊ณ user-pass ๋ฌธ์์ด์ ์์ฑํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค; ์์ ์๋ ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ด๋ฆ ์ ๋ ฅ์ ์ผ๋ถ๋ฅผ ๋น๋ฐ๋ฒํธ์ ์ผ๋ถ๋ก ์ฒ๋ฆฌํ ๊ฒ์ ๋๋ค.
์ฌ์ฉ์ ์์ด์ ํธ๊ฐ user-id "Aladdin"๊ณผ ๋น๋ฐ๋ฒํธ "open sesame"์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ํค๋ ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
2.1. 'charset' auth-param
์ฑ๋ฆฐ์ง์์ ์๋ฒ๋ 'charset' ์ธ์ฆ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ "user-pass"(์ฅํ ์ํ์ค)๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด์ ํ์ํ ์ ์์ต๋๋ค. ์ด ์ ๋ณด๋ ์์ํ ๊ถ๊ณ ์ (advisory)์ ๋๋ค.
ํ์ฉ๋๋ ์ ์ผํ ๊ฐ์ "UTF-8"์ด๋ฉฐ, ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ๋งค์น๋์ด์ผ ํฉ๋๋ค(์ฐธ์กฐ: [RFC2978], Section 2.3). ์ด๋ ์๋ฒ๊ฐ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ Unicode ์ ๊ทํ ํ์ C("NFC", RFC5198 Section 3)๋ก ๋ณํํ๊ณ UTF-8 ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด([RFC3629])์ ์ฌ์ฉํ์ฌ ์ฅํ ์ผ๋ก ์ธ์ฝ๋ฉํ ๊ฒ์ ๊ธฐ๋ํจ์ ๋ํ๋ ๋๋ค.
user-id์ ๊ฒฝ์ฐ ์์ ์๋ RFC7613 ์น์ 3.3์ ์ ์๋ "UsernameCasePreserved" ํ๋กํ์ผ์ ํฌํจ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ง์ํด์ผ ํ๋ฉฐ(MUST) ๋ค๋ง ์ฝ๋ก (" : ") ๋ฌธ์๋ ์์ธ์ ๋๋ค.
password์ ๊ฒฝ์ฐ ์์ ์๋ RFC7613 ์น์ 4.2์ ์ ์๋ "OpaqueString" ํ๋กํ์ผ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค(MUST).
๋ค๋ฅธ ๊ฐ๋ค์ ํฅํ ์ฌ์ฉ์ ์ํด ์์ฝ๋์ด ์์ต๋๋ค.
์๋ ์์์ ์๋ฒ๋ "foo" realm์์ Basic ์ธ์ฆ์ ์ฌ์ฉํ๋ฉฐ UTF-8 ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ ํธํจ์ ํ์ํฉ๋๋ค:
WWW-Authenticate: Basic realm="foo", charset="UTF-8"
๋งค๊ฐ๋ณ์ ๊ฐ์ ํ ํฐ์ด๊ฑฐ๋ ์ธ์ฉ๋ ๋ฌธ์์ด์ผ ์ ์์ต๋๋ค; ์ด ๊ฒฝ์ฐ ์๋ฒ๋ ์ธ์ฉ ๋ฌธ์์ด ํ๊ธฐ๋ฒ์ ์ ํํ์ต๋๋ค.
์ฌ์ฉ์ ์ด๋ฆ์ด "test"์ด๊ณ ๋น๋ฐ๋ฒํธ๊ฐ ์ ๋์ฝ๋ ๋ฌธ์ U+00A3(ํ์ด๋ ๊ธฐํธ)๋ฅผ ๋ค์ ๋ถ์ธ "123" ๋ฌธ์์ด์ผ ๋, UTF-8 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ฉด user-pass๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
't' 'e' 's' 't' ':' '1' '2' '3' pound 74 65 73 74 3A 31 32 33 C2 A3
์ด ์ฅํ ์ํ์ค๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํ๋ฉด([RFC4648]) ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
dGVzdDoxMjPCow==
๋ฐ๋ผ์ Authorization ํค๋ ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
Authorization: Basic dGVzdDoxMjPCow==
๋๋ ํ๋ก์ ์ธ์ฆ์ ๊ฒฝ์ฐ:
Proxy-Authorization: Basic dGVzdDoxMjPCow==
2.2. ์๊ฒฉ์ฆ๋ช ์ฌ์ฌ์ฉ
์ธ์ฆ๋ ์์ฒญ์ ์ ๋ URI([RFC3986], Section 4.3)๊ฐ ์ฃผ์ด์ง๋ฉด, ํด๋น ์์ฒญ์ ์ธ์ฆ ๋ฒ์(authentication scope)๋ ๊ฒฝ๋ก ๊ตฌ์ฑ์์("hier_part", [RFC3986], Section 3)์ ๋ง์ง๋ง ์ฌ๋์("/") ๋ฌธ์ ์ดํ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ์ฌ ์ป์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ๋ ์์ฒญ์ realm ๊ฐ์ด ์ง์ ํ๋ ๋ณดํธ ๊ณต๊ฐ ๋ด์์ ์ธ์ฆ ๋ฒ์์ ์ ๋์ฌ ์ผ์น(prefix-match)๋ฅผ ๊ฐ๋ URI๋ค๋ ๋์ผํ ๋ณดํธ ๊ณต๊ฐ์ ์ํ๋ค๊ณ ๊ฐ์ ํด์ผ(SHOULD) ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ํด๋น ๊ณต๊ฐ์ ๋ฆฌ์์ค์ ๋ํ ์์ฒญ์์ ์๋ฒ๋ก๋ถํฐ ์ถ๊ฐ ์ฑ๋ฆฐ์ง๋ฅผ ๋ฐ์ง ์๊ณ ๋ ํด๋น Authorization ํค๋ ํ๋๋ฅผ ์ ์ ์ ์ผ๋ก ์ ์กํ ์ ์์ต๋๋ค(MAY). ๋ง์ฐฌ๊ฐ์ง๋ก, ํด๋ผ์ด์ธํธ๊ฐ ํ๋ก์์ ์์ฒญ์ ๋ณด๋ผ ๋๋ Proxy-Authorization ํค๋ ํ๋์์ user-id์ password๋ฅผ ํ๋ก์๋ก๋ถํฐ ์ถ๊ฐ ์ฑ๋ฆฐ์ง ์์ด ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค(MAY).
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ด ์ธ์ฆ๋ ์์ฒญ์ด ์๋ค๋ฉด:
http://example.com/docs/index.html
์๋ URI๋ค์ ๋ํ ์์ฒญ์ ์๋ ค์ง ์๊ฒฉ์ฆ๋ช ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
http://example.com/docs/ http://example.com/docs/test.doc http://example.com/docs/?page=1
๋ฐ๋ฉด ์๋ URI๋ค์ ์ธ์ฆ ๋ฒ์ ๋ฐ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค:
http://example.com/other/ https://example.com/docs/
URI๋ ์ฌ๋ฌ ์ธ์ฆ ๋ฒ์์ ์ผ๋ถ์ผ ์ ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค(์: "http://example.com/" ๋ฐ "http://example.com/docs/"). ์ด ๋ช ์ธ๋ ์ด๋ค ์ค ์ด๋ ๊ฒ์ด ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ ธ์ผ ํ๋์ง ์ ์ํ์ง ์์ต๋๋ค.
3. ๊ตญ์ ํ ๊ณ ๋ ค์ฌํญ
US-ASCII ๋ฌธ์ ์งํฉ์ ๋ฒ์ด๋๋ ๋ฌธ์๋ฅผ ํฌํจํ user-id๋ password๋ ํต์ ๋น์ฌ์ ์์ธก์ด ์ฌ์ฉํ ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด์ ํฉ์ํ์ง ์์ผ๋ฉด ์ํธ ์ด์ฉ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฒ๋ 'charset' ๋งค๊ฐ๋ณ์(Section 2.1)๋ฅผ ์ฌ์ฉํ์ฌ "UTF-8"์ ์ ํธํ๋ค๊ณ ํ์ํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์ธ์ฝ๋ฉ์ผ๋ก ์ ํํ ๊ฐ๋ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
'realm' ๋งค๊ฐ๋ณ์๋ ํ ์คํธ๋ก ๊ฐ์ฃผ๋ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์ง๋ง, [RFC7235]๋ ๋น-US-ASCII ๋ฌธ์๋ฅผ ์ ๋ขฐ์ฑ ์๊ฒ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ์ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ํด๋น ๋ช ์ธ๋ฅผ ๊ฐ์ ํ ๋ ํด๊ฒฐ๋์ด์ผ ํ ์๋ ค์ง ์ด์์ ๋๋ค.
4. ๋ณด์ ๊ณ ๋ ค์ฌํญ
Basic ์ธ์ฆ ์คํด์ ์์ ํ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ๋ฒ์ด ์๋๋ฉฐ, ์ ์ก๋๋ ์๊ฒฉ์ฆ๋ช ์ ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ ์์์ ํ๋ฌธ์ผ๋ก ์ ์ก๋ฉ๋๋ค. HTTP๋ Basic ์ธ์ฆ์ ์ผํ์ฉ ๋น๋ฐ๋ฒํธ ๋ฑ๊ณผ ๊ฐ์ ํฅ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ง์ง ์์ต๋๋ค.
Basic ์ธ์ฆ์ ๊ฐ์ฅ ์ฌ๊ฐํ ๊ฒฐํจ์ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ๋ฅผ ํตํด ํ๋ฌธ์ผ๋ก ์ ์ก๋๋ค๋ ์ ์ ๋๋ค. ๋ง์ ๋ค๋ฅธ ์ธ์ฆ ์คํด์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
Basic ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ๋ฌธ์ผ๋ก ์ ์กํ๋ฏ๋ก, ๋ฏผ๊ฐํ๊ฑฐ๋ ๊ฐ์น ์๋ ์ ๋ณด๋ฅผ ๋ณดํธํ๊ธฐ ์ํด(์: HTTPS ์์ด) ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค(SHOULD NOT).
Basic ์ธ์ฆ์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ์๋ณ ๋ชฉ์ ์ ๋๋ค โ ์๋ฅผ ๋ค์ด ์๋ฒ์ ์ ํํ ์ฌ์ฉ ํต๊ณ๋ฅผ ์์งํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ user-id์ password๋ฅผ ์ ๊ณตํ๋๋ก ์๊ตฌํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ค์ค๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํํ๊ฒ ํ์ฉํ์ง ์๊ณ ์๋ฒ๊ฐ ์ฌ์ฉ์์๊ฒ user-id์ password๋ฅผ ๋ฐ๊ธํ๋ค๋ฉด ์ํ์ด ์ ๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์์ฃผ ๋์ผํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์์ด ์ํ์ด ๋ฐ์ํฉ๋๋ค.
์๋ฒ๊ฐ ์ฌ์ฉ์๊ฐ ์์ฒด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํํ๋๋ก ํ์ฉํ๋ฉด ์ํ์ ์๋ฒ์ ๋ฌธ์ ๋ฌด๋จ ์ ๊ทผ๋ฟ ์๋๋ผ ์ฌ์ฉ์๊ฐ ๋์ผํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณดํธํ๋ ๋ค๋ฅธ ์์คํ ์ ์์์ ๋ํ ๋ฌด๋จ ์ ๊ทผ๊น์ง ํฌํจํฉ๋๋ค. ๋ํ ์๋ฒ์ ๋น๋ฐ๋ฒํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ง์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ค๋ฅธ ์ฌ์ดํธ์ ๋น๋ฐ๋ฒํธ์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์คํ ์์ ์๋ ๊ด๋ฆฌ์๊ฐ ํด๋น ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์งํ์ง ์์ผ๋ฉด ๋ชจ๋ ์ฌ์ฉ์๊ฐ ํ ์ฌ์ดํธ์ ๋ํ ๋ฌด๋จ ์ ๊ทผ ์ํ์ ๋ ธ์ถ๋ ์ ์์ต๋๋ค. ์ด๋ ๋ณด์ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค(RFC6973 ์ฐธ์กฐ). ๋์ผํ user-id/๋น๋ฐ๋ฒํธ ์กฐํฉ์ด ์ด๋ฉ์ผ์ด๋ ๊ฑด๊ฐ ํฌํธ ๊ฐ์ ๋ค๋ฅธ ๊ณ์ ์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๊ฐ์ธ ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ์ ์์ต๋๋ค.
Basic ์ธ์ฆ์ ์์กฐ ์๋ฒ์ ์ํ ์คํธํ์๋ ์ทจ์ฝํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์์ ์ด ์ธ์ฆ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง ํธ์คํธ์ ์ฐ๊ฒฐํ๊ณ ์๋ค๊ณ ๋ฏฟ๊ฒ๋ ์ ๋๋ ์ ์๊ณ , ์ค์ ๋ก๋ ์ ์์ ์๋ฒ์ ์ฐ๊ฒฐ๋๋ฉด ๊ณต๊ฒฉ์๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฒญํ์ฌ ์ ์ฅํ ๋ค ์ค๋ฅ๋ฅผ ๊ฐ์ฅํ ์ ์์ต๋๋ค. ์๋ฒ ๊ตฌํ์๋ ์ด๋ฌํ ์์กฐ๋ฅผ ๋ฐฉ์งํด์ผ ํฉ๋๋ค; ํนํ ๊ธฐ์กด ์ฐ๊ฒฐ์ ๋ฉ์์ง ํ๋ ์ด๋ฐ ์ ์ด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ํํธ์จ์ด ๊ตฌ์ฑ์์๋ ์ฃผ์ํด์ ์ฌ์ฉํ๊ฑฐ๋ ์์ ์ฌ์ฉํ์ง ์์์ผ ํฉ๋๋ค(์: RFC3875์ NPH ์คํฌ๋ฆฝํธ ๋ฑ).
Basic ์ธ์ฆ์ ๊ตฌํํ๋ ์๋ฒ ๋ฐ ํ๋ก์๋ ์์ฒญ์ ์ธ์ฆํ๊ธฐ ์ํด ์ด๋ค ํํ๋ก๋ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋น๋ฐ๋ฒํธ๋ ๋น๋ฐ๋ฒํธ ๋ฐ์ดํฐ๊ฐ ์ ์ถ๋๋๋ผ๋ ์ฝ๊ฒ ๋ณต์๋ ์ ์๋๋ก ์ ์ฅ๋์ด์ผ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ค์ค๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์๋๋ก ํ์ฉ๋๋ ๊ฒฝ์ฐ์๋ ํนํ ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๋ ์ฝํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํํ๊ณ ์ธ์ฆ ์์ญ(realm) ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์๋ ค์ ธ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ์ํ ๋น๋ฐ๋ฒํธ ํด์ฑ ๊ธฐ๋ฒ์ ๋ํ ์ ์ฒด ๋ ผ์๋ ์ด ๋ฌธ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง๋ง, ์๋ฒ ์ด์์๋ ๋น๋ฐ๋ฒํธ ๋ฐ์ดํฐ ์ ์ถ ์ ์ฌ์ฉ์์ ๋ํ ์ํ์ ์ต์ํํ๊ธฐ ์ํด ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ฒ๋ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ๋ฌธ์ผ๋ก ์ ์ฅํ๊ฑฐ๋ ์ํธ๊ฐ ์๋ ๋ค์ด์ ์คํธ๋ก ์ ์ฅํ๋ ๊ฒ์ ํผํด์ผ ํฉ๋๋ค. ์ต์ ๋น๋ฐ๋ฒํธ ํด์ฑ ๊ธฐ๋ฒ์ ๋ํ ์์ธํ ๋ ผ์๋ "Password Hashing Competition" (<https://password-hashing.net>)์ ์ฐธ์กฐํ์ญ์์ค.
UTF-8 ๋ฌธ์ ์ธ์ฝ๋ฉ๊ณผ ์ ๊ทํ ์ฌ์ฉ์ ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ณ ๋ ค์ฌํญ์ ์๋ฐํฉ๋๋ค; ์์ธํ ๋ด์ฉ์ RFC3629 ์น์ 10 ๋ฐ RFC5198 ์น์ 6์ ์ฐธ์กฐํ์ญ์์ค.
5. IANA ๊ณ ๋ ค์ฌํญ
IANA๋ "Hypertext Transfer Protocol (HTTP) Authentication Scheme Registry"๋ฅผ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค([RFC7235]) <http://www.iana.org/assignments/http-authschemes>.
"Basic" ์ธ์ฆ ์คํด์ ํญ๋ชฉ์ ์ด ๋ช ์ธ๋ฅผ ์ฐธ์กฐํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
6. ์ฐธ๊ณ ๋ฌธํ
6.1. ๊ท๋ฒ ์ฐธ์กฐ
- [RFC0020]
- Cerf, V., โASCII format for network interchangeโ, STD 80, RFC 20, October 1969, <http://www.rfc-editor.org/info/rfc20>.
- [RFC2119]
- Bradner, S., โKey words for use in RFCs to Indicate Requirement Levelsโ, BCP 14, RFC 2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.
- [RFC2978]
- Freed, N. and J. Postel, โIANA Charset Registration Proceduresโ, BCP 19, RFC 2978, October 2000, <http://www.rfc-editor.org/info/rfc2978>.
- [RFC3629]
- Yergeau, F., โUTF-8, a transformation format of ISO 10646โ, STD 63, RFC 3629, November 2003, <http://www.rfc-editor.org/info/rfc3629>.
- [RFC3986]
- Berners-Lee, T., Fielding, R., and L. Masinter, โUniform Resource Identifier (URI): Generic Syntaxโ, STD 66, RFC 3986, January 2005, <http://www.rfc-editor.org/info/rfc3986>.
- [RFC4648]
- Josefsson, S., โThe Base16, Base32, and Base64 Data Encodingsโ, RFC 4648, October 2006, <http://www.rfc-editor.org/info/rfc4648>.
- [RFC5198]
- Klensin, J. and M. Padlipsky, โUnicode Format for Network Interchangeโ, RFC 5198, March 2008, <http://www.rfc-editor.org/info/rfc5198>.
- [RFC5234]
- Crocker, D., Ed. and P. Overell, โAugmented BNF for Syntax Specifications: ABNFโ, STD 68, RFC 5234, January 2008, <http://www.rfc-editor.org/info/rfc5234>.
- [RFC6365]
- Hoffman, P. and J. Klensin, โTerminology Used in Internationalization in the IETFโ, BCP 166, RFC 6365, September 2011, <http://www.rfc-editor.org/info/rfc6365>.
- [RFC7235]
- Fielding, R., Ed. and J. Reschke, Ed., โHypertext Transfer Protocol (HTTP/1.1): Authenticationโ, RFC 7235, June 2014, <http://www.rfc-editor.org/info/rfc7235>.
- [RFC7613]
- Saint-Andre, P. and A. Melnikov, โPreparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwordsโ, RFC 7613, August 2015, <http://www.rfc-editor.org/info/rfc7613>.
6.2. ์ฐธ๊ณ ๋ฌธํ(์ ๋ณด)
- [ISO-8859-1]
- International Organization for Standardization, โInformation technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1โ, ISO/IEC 8859-1:1998, 1998.
- [RFC2617]
- Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, โHTTP Authentication: Basic and Digest Access Authenticationโ, RFC 2617, June 1999, <http://www.rfc-editor.org/info/rfc2617>.
- [RFC2818]
- Rescorla, E., โHTTP Over TLSโ, RFC 2818, May 2000, <http://www.rfc-editor.org/info/rfc2818>.
- [RFC2831]
- Leach, P. and C. Newman, โUsing Digest Authentication as a SASL Mechanismโ, RFC 2831, May 2000, <http://www.rfc-editor.org/info/rfc2831>.
- [RFC3875]
- Robinson, D. and K. Coar, โThe Common Gateway Interface (CGI) Version 1.1โ, RFC 3875, October 2004, <http://www.rfc-editor.org/info/rfc3875>.
- [RFC5246]
- Dierks, T. and E. Rescorla, โThe Transport Layer Security (TLS) Protocol Version 1.2โ, RFC 5246, August 2008, <http://www.rfc-editor.org/info/rfc5246>.
- [RFC6973]
- Cooper, A., et al., โPrivacy Considerations for Internet Protocolsโ, RFC 6973, July 2013, <http://www.rfc-editor.org/info/rfc6973>.
- [RFC7231]
- Fielding, R., Ed. and J. Reschke, Ed., โHypertext Transfer Protocol (HTTP/1.1): Semantics and Contentโ, RFC 7231, June 2014, <http://www.rfc-editor.org/info/rfc7231>.
- [RFC7615]
- Reschke, J., โHTTP Authentication-Info and Proxy-Authentication-Info Response Header Fieldsโ, RFC 7615, September 2015, <http://www.rfc-editor.org/info/rfc7615>.
- [RFC7616]
- Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer, โHTTP Digest Access Authenticationโ, RFC 7616, September 2015, <http://www.rfc-editor.org/info/rfc7616>.
๋ถ๋ก A. RFC 2617์์์ ๋ณ๊ฒฝ์ฌํญ
์คํด ์ ์๋ [RFC7235]์ ๊ฐ์ ์ต์ ๋ช ์ธ์ ์ผ์นํ๋๋ก ๋ค์ ์์ฑ๋์์ต๋๋ค.
์๋ก์ด ์ธ์ฆ ๋งค๊ฐ๋ณ์ 'charset'์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๊ฒ์ ์์ํ ๊ถ๊ณ ์ ์ด๋ฏ๋ก ๊ธฐ์กด ๊ตฌํ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ผ๋ฉฐ, ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ด์ฉํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์๋ง ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค.
๋ถ๋ก B. 'charset' ๋งค๊ฐ๋ณ์์ ๋ฐฐํฌ ๊ณ ๋ ค์ฌํญ
B.1. ์ฌ์ฉ์ ์์ด์ ํธ
'charset'์ ๊ตฌํํ์ง ์๋ ์ฌ์ฉ์ ์์ด์ ํธ๋ ์๋ก์ด ๋งค๊ฐ๋ณ์๋ฅผ ๋ฌด์ํ๊ณ ์ด์ ๊ณผ ๋์ผํ๊ฒ ๊ณ์ ์๋ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฏธ UTF-8์ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์์ด์ ํธ๋ ์ ์์ 'charset'์ ๊ตฌํํ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฌ์ฉ์ ์์ด์ ํธ๋ ๊ธฐ๋ณธ ๋์์ ์ ์งํ๋ค๊ฐ ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณด๊ฒ ๋๋ฉด UTF-8๋ก ์ ํํ ์ ์์ต๋๋ค.
B.2. ์๋ฒ
์๊ฒฉ์ฆ๋ช ์์ ๋น-US-ASCII ๋ฌธ์๋ฅผ ์ง์ํ์ง ์๋ ์๋ฒ๋ 'charset'์ ์ง์ํ๊ธฐ ์ํด ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
๋น-US-ASCII ๋ฌธ์๋ฅผ ์ง์ํด์ผ ํ์ง๋ง UTF-8 ๋ฌธ์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ ์ ์๋ ์๋ฒ๋ ์ํฅ๋ฐ์ง ์์ผ๋ฉฐ ์ด์ ๊ณผ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค.
๋น-US-ASCII ๋ฌธ์๋ฅผ ์ง์ํด์ผ ํ๊ณ UTF-8์ ์ฌ์ฉํ ์ ์๋ ์๋ฒ๋ ์ฑ๋ฆฐ์ง์ 'charset' ๋งค๊ฐ๋ณ์๋ฅผ ์ง์ ํ์ฌ ์ตํธ์ธํ ์ ์์ต๋๋ค. 'charset'์ ์ดํดํ๋ ํด๋ผ์ด์ธํธ๋ UTF-8์ ์ฌ์ฉํ๊ธฐ ์์ํ ๊ฒ์ด๊ณ , ๊ทธ๋ ์ง ์์ ํด๋ผ์ด์ธํธ๋ ๊ณ์ ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ์ผ๋ก ์๊ฒฉ์ฆ๋ช ์ ๋ณด๋ด๊ฑฐ๋ ๊นจ์ง ์๊ฒฉ์ฆ๋ช ์ ๋ณด๋ด๊ฑฐ๋ ์ ํ ๋ณด๋ด์ง ์์ ์ ์์ต๋๋ค. ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ UTF-8์ ์ง์ํ๋๋ก ์ ๊ทธ๋ ์ด๋๋ ๋๊น์ง ์๋ฒ๋ ์์ฒญ์์ UTF-8๊ณผ ๋ ๊ฑฐ์ ์ธ์ฝ๋ฉ์ ๋ชจ๋ ๋ณด๊ฒ ๋ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. UTF-8๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์คํจํ ๊ฒฝ์ฐ(UTF-8 ๋์ฝ๋ฉ ์คํจ๋ user-id/password ๋ถ์ผ์น ๋ฑ) ์๋ฒ๋ ์ด์ ์ ์ง์ํ๋ ๋ ๊ฑฐ์ ์ธ์ฝ๋ฉ์ผ๋ก ํด๋ฐฑ์ ์๋ํ ์ ์์ต๋๋ค. ๋จ, ์๋ฌต์ ์ฌ์๋๋ ์ ์คํ ์ํ๋์ด์ผ ํฉ๋๋ค; ์ผ๋ถ ์๋ธ์์คํ ์ ๋ฐ๋ณต๋ ๋ก๊ทธ์ธ ์คํจ๋ฅผ ์๊ฒฉ์ฆ๋ช ์ถ์ธก ๊ณต๊ฒฉ์ผ๋ก ๊ฐ์งํ ์ ์์ต๋๋ค.
B.3. ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ์ ๋จ์ํ UTF-8๋ก ์ ํํ์ง ์๋ ์ด์
์ค๋๋ ์ผ๋ถ ์ฌ์ดํธ๋ ISO-8859-1([ISO-8859-1])๊ณผ ๊ฐ์ ๋ก์ปฌ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋๋ก ๋์ด ์๊ณ , ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ ํด๋น ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์ด๋ฌํ ์ฌ์ดํธ์์ ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ UTF-8๋ก ์ ํํ๋ฉด ์ธ์ฆ์ด ์ค๋จ๋ ์ ์์ต๋๋ค.
์ฌ์ดํธ๋ User-Agent ํค๋ ํ๋๋ฅผ ๊ฒ์ฌํ์ฌ(RFC7231, Section 5.5.3) ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๊ธฐ๋ํ๋์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ผ๋ถ ์ฌ์ฉ์ ์์ด์ ํธ์ ๋ํด์๋ UTF-8์ ์ง์ํ๋ ๋ค๋ฅธ ์ฌ์ฉ์ ์์ด์ ํธ์ ๋ํด์๋ ๋ค๋ฅธ ์ธ์ฝ๋ฉ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ ์ฌ์ดํธ๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ์์ ๊ทธ๋ฃน์ ์ํ ์ฌ์ฉ์ ์์ด์ ํธ๋ ๋ค์์ ์๋ฒ๊ฐ ํญ์ UTF-8์ ์ฌ์ฉํ๋๋ก ์ ๊ทธ๋ ์ด๋๋ ๋๊น์ง ๊ธฐ์กด ๋์์ ๊ณ์ํด์ผ ํฉ๋๋ค.
๊ฐ์ฌ์ ๊ธ
์ด ๋ช ์ธ๋ ์ด์ ์ RFC 2617์์ ์ ์๋ "Basic" HTTP ์ธ์ฆ ์คํด์ ์ ์๋ฅผ ์ธ๊ณ๋ฐ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํด๋น ๋ช ์ธ ์์ ์ ๊ธฐ์ฌํ John Franks, Phillip M. Hallam-Baker, Jeffery L. Hostetler, Scott D. Lawrence, Paul J. Leach, Ari Luotonen, ๋ฐ Lawrence C. Stewart์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ถ๊ฐ ๊ฐ์ฌ์ ๊ธ์ RFC2617 ์น์ 6์ ์ฐธ์กฐํ์ญ์์ค.
user-pass์ ์ฌ์ฉ๋๋ ๋ฌธ์ ์ธ์ฝ๋ฉ ์คํด๊ณผ ๊ด๋ จ๋ ๊ตญ์ ํ ๋ฌธ์ ๋ 2000๋ ์ ๋ชจ์ง๋ผ ๋ฒ๊ทธ๋ก ๋ณด๊ณ ๋์์ต๋๋ค (์ฐธ์กฐ: <https://bugzilla.mozilla.org/show_bug.cgi?id=41489> ๋ฐ ๋ ์ต๊ทผ์ <https://bugzilla.mozilla.org/show_bug.cgi?id=656213>). ์ด ๋ฌธ์ ๋ฅผ ์๋ก์ด auth-param์ผ๋ก ํด๊ฒฐํ์๋ ์์ด๋์ด๋ Andrew Clover์ ๊ฒ์ด์์ต๋๋ค.
์ด ๊ฐ์ ์ ๋ํ ํผ๋๋ฐฑ์ ์ค HTTPAUTH ์์ ๊ทธ๋ฃน ๊ตฌ์ฑ์๋ค๊ณผ ๋ฆฌ๋ทฐ์ด๋ค(์: Stephen Farrell, Roy Fielding, Daniel Kahn Gillmor, Tony Hansen, Bjoern Hoehrmann, Kari Hurtta, Amos Jeffries, Benjamin Kaduk, Michael Koeller, Eric Lawrence, Barry Leiba, James Manger, Alexey Melnikov, Kathleen Moriarty, Juergen Schoenwaelder, Yaron Sheffer, Meral Shirazipour, Michael Sweet, ๋ฐ Martin Thomson)์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.