Quiz

(1) Content-LengthλŠ” body 전체 길이이닀. ( O / X )

(2) HTTP/1.1의 Intermediaries (μ€‘κ°œμž)κ°€ μ•„λ‹Œ 것은?

    1. Proxy

  • 2. Gateway (reverse proxy)

  • 3. Tunnel

  • 4. Cache

(3) cacheλž€?

(4) μΊμ‹œλŠ” μ„œλ²„κ°€ 터널 역할을 ν•˜λŠ” λ™μ•ˆμ—λŠ” μ‚¬μš©λ  수 μžˆλ‹€. ( O / X )

(5) Host와 Connection 헀더 ν•„λ“œλŠ” HTTP/1.1μ€€μˆ˜ 여뢀에 관계 없이 λͺ¨λ“  HTTP/1.xκ΅¬ν˜„μ— μ˜ν•΄ κ΅¬ν˜„λ˜μ–΄μ•Ό ν•œλ‹€. ( O / X )

(6) HTTPλŠ” 전솑 ν”„λ‘œν† μ½œκ³Ό λ…λ¦½μ μ΄μ§€λ§Œ, 이름 μœ„μž„ ν”„λ‘œμ„ΈμŠ€λŠ” κΆŒν•œμ„ μ„€μ •ν•˜λŠ” TCP에 μ˜μ‘΄ν•˜κΈ° λ•Œλ¬Έμ— β€œhttp” scheme은 TCP기반 μ„œλΉ„μŠ€μ—λ§Œ ν•œμ •λœλ‹€. ( O / X )

(7) λ‹€μŒμ„ URI λͺ…μΉ­μœΌλ‘œ ν‘œμ‹œν•˜μ‹œ.

http://example.com:80/~smith/home.html

(8) HTTP-messageμ—μ„œ header-fieldλŠ” λ¬΄ν•œνžˆ λ“€μ–΄κ°ˆ 수 μžˆλ‹€. ( O / X )

(9) HTTP-messageμ—μ„œ header-field와 message-bodyμ‚¬μ΄μ—λŠ” CRLF ν•˜λ‚˜κ°€ λ“€μ–΄κ°„λ‹€. ( O / X )

(10) HTTP-messageλŠ” CRLF, start-line, header-field, message-body, end-line으둜 κ΅¬μ„±λΌμžˆλ‹€. ( O / X )

(11) λ‹€μŒ μ•Œλ§žμ€ 것을 μ§μ§€μœΌμ‹œμ˜€.

1. Request Line, 2. Status Line

γ„±. HTTP/1.1 404 Not Found.
. GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

(12) 헀더 ν•„λ“œλ₯Ό λ¬΄μ‹œν•˜λ©΄ μ„œλ²„μ˜ smuggling 곡격 취약성이 μ¦κ°€ν•œλ‹€. smuggling 곡격 μ΄λž€?

(13) μš”μ²­μ—μ„œ λ©”μ‹œμ§€ 본문이 있으면 Content-Length λ˜λŠ” Transfer-Encoding 헀더 ν•„λ“œλ‘œ ν‘œμ‹œλœλ‹€. ( O / X )

(14) μ‘λ‹΅μ—μ„œ λ©”μ‹œμ§€ 본문의 쑴재 μ—¬λΆ€λŠ” μ‘λ‹΅ν•˜λŠ” 응닡 μƒνƒœ μ½”λ“œμ— 따라 달라진닀. ( O / X )

(15) λ©”μ‹œμ§€μ— Transfer-Encoding 헀더 ν•„λ“œκ°€ μ—†λŠ” 경우, Content-Length 헀더 ν•„λ“œμ˜ 값은 숫자 크기에 상관없이 λͺ¨λ‘ λ“€μ–΄ 갈 수 μžˆλ‹€. ( O / X )

(16) λ°œμ‹ μžλŠ” Transfer-Encoding 헀더 ν•„λ“œλ₯Ό ν¬ν•¨ν•˜λŠ” λ©”μ‹œμ§€μ—μ„œ Content-Length 헀더 ν•„λ“œλ„ 포함 ν•  수 μžˆλ‹€. ( O / X )

(17) Content-Length ν•„λ“œ 값이 0보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©΄ μœ νš¨ν•˜λ‹€. ( O / X )

(18) connect μš”μ²­μ— λŒ€ν•œ 2xx (성곡) μ‘λ‹΅μ‹œ Content-Length λ˜λŠ” Transfer-EncodingλŠ” λ¬΄μ‹œλœλ‹€. ( O / X )

(19) 전솑 μ½”λ”©(Transfer coding) 이름은 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 "safe transport" 을 보μž₯ν•˜κΈ° μœ„ν•œ 인코딩 λ³€ν™˜μœΌλ‘œ μ‚¬μš©λœλ‹€. ( O / X )

(20) Request Target에 κ΄€ν•œ λ‚΄μš©μ΄λ‹€. μ•Œλ§žμ€ 것을 μ§μ§€μœΌμ‹œμ˜€.

  1. origin-form

  2. absolute-form

γ„±.
GET /where?q=now HTTP/1.1 
Host: www.example.org

γ„΄.
GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1

(21) HTTP λ©”μ‹œμ§•μ€ κΈ°λ°˜μ„ μ΄λ£¨λŠ” 전솑 λ˜λŠ” μ„Έμ…˜ 계측 컀λ„₯μ…˜ ν”„λ‘œν† μ½œκ³Ό 독립적이닀. ( O / X )

(22) Connection κ³Ό Keep-Alive 같은 μ—°κ²°-지정 (Connection-specific) 헀더 ν•„λ“œλ“€μ€ HTTP/2μ—μ„œ κΈˆμ§€λœλ‹€. ( O / X )

(23) β€œclose” 컀λ„₯μ…˜ μ˜΅μ…˜μ€ ν˜„μž¬ μš”μ²­/응닡 ν›„ 컀λ„₯μ…˜μ΄ μ§€μ†λ˜μ§€ μ•ŠμŒμ„ μ•Œλ¦¬λŠ” 데 μ‚¬μš©λœλ‹€. ( O / X )

(24) λ‹€μŒμ€ http/1.1μ—μ„œ μ–΄λŠ 뢀뢄에 κ΄€ν•œ λ‚΄μš©μΈκ°€?

(25) λ‹€μŒ λΉˆμΉΈμ— λ“€μ–΄κ°ˆ μ•Œλ§žμ€ λ‹¨μ–΄λŠ”?

HTTP/1.1 101 Switching Protocols Connection: [빈칸] Upgrade: HTTP/2.0

[... data stream switches to HTTP/2.0 with an appropriate response (as defined by new protocol) to the "GET /hello.txt" request ...]

(26) HTTP/1.1에 적용된 ABNF κ·œμΉ™μ— λŒ€ν•˜μ—¬ μ•„λž˜ μ˜ˆμ‹œμ€‘ μ ν•©ν•˜μ§€ μ•Šμ€ 것을 κ³ λ₯΄μ‹œμ˜€.

γ„±. "foo,bar" γ„΄. "foo ,bar," γ„·. "" γ„Ή. "," ㅁ. ", ,"

(27) DNS λ³΄μ•ˆ ν™•μž₯(DNSSEC, [RFC4033])은 신뒰성을 ν–₯μƒμ‹œν‚€λŠ” ν•œ 가지 방법이닀. ( O / X )

(28) HTTP/0.9λŠ” 첫번째 버전이닀. ( O / X )

(29) μ—¬λŸ¬ 라인에 걸쳐 μžˆλŠ”(β€œline folding”) 헀더 ν•„λ“œλŠ” HTTP/1.1의 μ£Όμš” 문법 쀑 ν•˜λ‚˜μ΄λ‹€. ( O / X )

(30) HTTP/1.1 은 HTTP/0.9 μš”μ²­μ„ μ§€μ›ν•΄μ•Όν•œλ‹€. ( O / X )

(31) Pipelining은 GET/HEADμ—λŠ” μ μš©ν•œμˆ˜μžˆλŠ” 반면, POST/PUTμ—μ„œλŠ” μ μš©λΆˆκ°€λŠ₯ν•˜λ‹€. ( O / X )

λ‹΅μ•ˆ.

(1) Content-LengthλŠ” body 전체 길이이닀. ( O / X )

(2) HTTP/1.1의 Intermediaries (μ€‘κ°œμž)κ°€ μ•„λ‹Œ 것은? 4

(3) cacheλž€?

"cache"λŠ” 이전 응닡 λ©”μ‹œμ§€μ˜ 둜컬 λ³΄κ΄€μ†Œμ΄κ³  λ©”μ‹œμ§€μ˜ μ €μž₯, 검색, μ‚­μ œλ₯Ό 관리 ν•˜λŠ” μ„œλΈŒ μ‹œμŠ€ν…œμ΄λ‹€. μΊμ‹œλŠ” μΊμ‹œ κ°€λŠ₯ν•œ 응닡을 μ €μž₯ν•˜μ—¬ ν–₯ν›„ λ™μΌν•œ μš”μ²­μ— λŒ€ν•œ 응닡 μ‹œ κ°„κ³Ό λ„€νŠΈμ›Œν¬ λŒ€μ—­ν­ μ‚¬μš©μ„ 쀄일 수 μžˆλ‹€.

(4) μΊμ‹œλŠ” μ„œλ²„κ°€ 터널 역할을 ν•˜λŠ” λ™μ•ˆμ—λŠ” μ‚¬μš©λ  수 μžˆλ‹€. ( O / X )

(5) Host와 Connection 헀더 ν•„λ“œλŠ” HTTP/1.1μ€€μˆ˜ 여뢀에 관계 없이 λͺ¨λ“  HTTP/1.xκ΅¬ν˜„μ— μ˜ν•΄ κ΅¬ν˜„λ˜μ–΄μ•Ό ν•œλ‹€. ( O / X )

(6) HTTPλŠ” 전솑 ν”„λ‘œν† μ½œκ³Ό λ…λ¦½μ μ΄μ§€λ§Œ, 이름 μœ„μž„ ν”„λ‘œμ„ΈμŠ€λŠ” κΆŒν•œμ„ μ„€μ •ν•˜λŠ” TCP에 μ˜μ‘΄ν•˜κΈ° λ•Œλ¬Έμ— β€œhttp” scheme은 TCP기반 μ„œλΉ„μŠ€μ—λ§Œ ν•œμ •λœλ‹€. ( O / X )

(7) λ‹€μŒμ„ URI λͺ…μΉ­μœΌλ‘œ ν‘œμ‹œν•˜μ‹œμ˜€.

, http://example.com:80/~smith/home.html ?a=3

scheme:host:port/path?query

(8) HTTP-messageμ—μ„œ header-fieldλŠ” λ¬΄ν•œνžˆ λ“€μ–΄κ°ˆ 수 μžˆλ‹€. ( O / X )

(9) HTTP-messageμ—μ„œ header-field와 message-bodyμ‚¬μ΄μ—λŠ” CRLF ν•˜λ‚˜κ°€ λ“€μ–΄κ°„λ‹€. ( O / X )

HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]

2κ°œκ°€ λ“€μ–΄κ°„λ‹€.

(10) HTTP-messageλŠ” CRLF, start-line, header-field, message-body, end-line으둜 κ΅¬μ„±λΌμžˆλ‹€. ( O / X )

(11) λ‹€μŒ μ•Œλ§žμ€ 것을 μ§μ§€μœΌμ‹œμ˜€.

1. Request Line

. GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

2. Status Line

γ„±. HTTP/1.1 404 Not Found.

(12) 헀더 ν•„λ“œλ₯Ό λ¬΄μ‹œν•˜λ©΄ μ„œλ²„μ˜ smuggling 곡격 취약성이 μ¦κ°€ν•œλ‹€. smuggling 곡격 μ΄λž€?

Request smuggling([Linhart])은 λ‹€μ–‘ν•œ μˆ˜μ‹ μž κ°„μ˜ ν”„λ‘œν† μ½œ ꡬ문 λΆ„μ„μ˜ 차이λ₯Ό μ΄μš©ν•˜μ—¬ κ²‰μœΌλ‘œ λ³΄κΈ°μ—λŠ” λ¬΄ν•΄ν•œ μš”μ²­ λ‚΄μ—μ„œ μΆ”κ°€ μš”μ²­(λ‹€λ₯Έ 경우 정책에 μ˜ν•΄ μ°¨λ‹¨λ˜κ±°λ‚˜ λΉ„ν™œμ„±ν™”λ  수 있음)을 μˆ¨κΈ°λŠ” κΈ°μˆ μ΄λ‹€.

(13) μš”μ²­μ—μ„œ λ©”μ‹œμ§€ 본문이 있으면 Content-Length λ˜λŠ” Transfer-Encoding 헀더 ν•„λ“œλ‘œ ν‘œμ‹œλœλ‹€. ( O / X )

(14) μ‘λ‹΅μ—μ„œ λ©”μ‹œμ§€ 본문의 쑴재 μ—¬λΆ€λŠ” μ‘λ‹΅ν•˜λŠ” 응닡 μƒνƒœ μ½”λ“œμ— 따라 달라진닀. ( O / X )

μ‘λ‹΅μ—μ„œ λ©”μ‹œμ§€ 본문의 쑴재 μ—¬λΆ€λŠ” μ‘λ‹΅ν•˜λŠ” μš”μ²­ λ©”μ„œλ“œμ™€ 응닡 μƒνƒœ μ½”λ“œμ— 따라 달라진닀.

(15) λ©”μ‹œμ§€μ— Transfer-Encoding 헀더 ν•„λ“œκ°€ μ—†λŠ” 경우, Content-Length 헀더 ν•„λ“œμ˜ 값은 숫자 크기에 상관없이 λͺ¨λ‘ λ“€μ–΄ 갈 수 μžˆλ‹€. ( O / X )

Content-Length = 1*DIGIT

(16) λ°œμ‹ μžλŠ” Transfer-Encoding 헀더 ν•„λ“œλ₯Ό ν¬ν•¨ν•˜λŠ” λ©”μ‹œμ§€μ—μ„œ Content-Length 헀더 ν•„λ“œλ„ 포함 ν•  수 μžˆλ‹€. ( O / X )

λ°œμ‹ μžλŠ” Transfer-Encoding 헀더 ν•„λ“œλ₯Ό ν¬ν•¨ν•˜λŠ” λ©”μ‹œμ§€μ—μ„œ Content-Length 헀더 ν•„λ“œλ₯Ό 보내면 μ•ˆ λœλ‹€.

(17) Content-Length ν•„λ“œ 값이 0보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©΄ μœ νš¨ν•˜λ‹€. ( O / X )

(18) connect μš”μ²­μ— λŒ€ν•œ 2xx (성곡) μ‘λ‹΅μ‹œ Content-Length λ˜λŠ” Transfer-EncodingλŠ” λ¬΄μ‹œλœλ‹€. ( O / X )

connect μš”μ²­μ— λŒ€ν•œ 2xx (성곡) μ‘λ‹΅μ‹œ 헀더 ν•„λ“œλ₯Ό λλ‚΄λŠ” κ²ƒμœΌλ‘œ κ°„μ£Όλ˜λ―€λ‘œ 빈 쀄 λ°”λ‘œ 뒀에 연결이 터널이 됨을 μ˜λ―Έν•œλ‹€.

(19) 전솑 μ½”λ”©(Transfer coding) 이름은 λ„€νŠΈμ›Œν¬λ₯Ό 톡해 "safe transport" 을 보μž₯ν•˜κΈ° μœ„ν•œ 인코딩 λ³€ν™˜μœΌλ‘œ μ‚¬μš©λœλ‹€. ( O / X )

(20) Request Target에 κ΄€ν•œ λ‚΄μš©μ΄λ‹€. μ•Œλ§žμ€ 것을 μ§μ§€μœΌμ‹œμ˜€.

  1. origin-form

γ„±.
GET /where?q=now HTTP/1.1 
Host: www.example.org

2. absolute-form

γ„΄.
GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1

(21) HTTP λ©”μ‹œμ§•μ€ κΈ°λ°˜μ„ μ΄λ£¨λŠ” 전솑 λ˜λŠ” μ„Έμ…˜ 계측 컀λ„₯μ…˜ ν”„λ‘œν† μ½œκ³Ό 독립적이닀. ( O / X )

(22) Connection κ³Ό Keep-Alive 같은 μ—°κ²°-지정 (Connection-specific) 헀더 ν•„λ“œλ“€μ€ HTTP/2μ—μ„œ κΈˆμ§€λœλ‹€. ( O / X )

(23) β€œclose” 컀λ„₯μ…˜ μ˜΅μ…˜μ€ ν˜„μž¬ μš”μ²­/응닡 ν›„ 컀λ„₯μ…˜μ΄ μ§€μ†λ˜μ§€ μ•ŠμŒμ„ μ•Œλ¦¬λŠ” 데 μ‚¬μš©λœλ‹€. ( O / X )

(24) λ‹€μŒμ€ http/1.1μ—μ„œ μ–΄λŠ 뢀뢄에 κ΄€ν•œ λ‚΄μš©μΈκ°€?

pipelining, HTTP/2.x 이 λ‚˜μ˜€λ©΄μ„œ λ©€ν‹°ν”Œλž™μ‹± μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ λŒ€μ²΄λλ‹€.

(25) λ‹€μŒ λΉˆμΉΈμ— λ“€μ–΄κ°ˆ μ•Œλ§žμ€ λ‹¨μ–΄λŠ”?

HTTP/1.1 101 Switching Protocols Connection: upgrade Upgrade: HTTP/2.0

[... data stream switches to HTTP/2.0 with an appropriate response (as defined by new protocol) to the "GET /hello.txt" request ...]

(26) HTTP/1.1에 적용된 ABNF κ·œμΉ™μ— λŒ€ν•˜μ—¬ μ•„λž˜ μ˜ˆμ‹œμ€‘ μ ν•©ν•˜μ§€ μ•Šμ€ 것을 κ³ λ₯΄μ‹œμ˜€.

γ„·, γ„Ή, ㅁ

(27) DNS λ³΄μ•ˆ ν™•μž₯(DNSSEC, [RFC4033])은 신뒰성을 ν–₯μƒμ‹œν‚€λŠ” ν•œ 가지 방법이닀. ( O / X )

(28) HTTP/0.9λŠ” 첫번째 버전이닀. ( O / X )

HTTP has been in use since 1990.  The first version, later referred
   to as HTTP/0.9, was a simple protocol for hypertext data transfer
   across the Internet, using only a single request method (GET) and no
   metadata.

(29) μ—¬λŸ¬ 라인에 걸쳐 μžˆλŠ”(β€œline folding”) 헀더 ν•„λ“œλŠ” HTTP/1.1의 μ£Όμš” 문법 쀑 ν•˜λ‚˜μ΄λ‹€. ( O / X )

더 이상 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

(30) HTTP/1.1 은 HTTP/0.9 μš”μ²­μ„ μ§€μ›ν•΄μ•Όν•œλ‹€. ( O / X )

(31) Pipelining은 GET/HEADμ—λŠ” μ μš©ν•œμˆ˜μžˆλŠ” 반면, POST/PUTμ—μ„œλŠ” μ μš©λΆˆκ°€λŠ₯ν•˜λ‹€. ( O / X )

Last updated

Was this helpful?