> For the complete documentation index, see [llms.txt](https://hochan049.gitbook.io/cs-interview/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hochan049.gitbook.io/cs-interview/web/rfc-7320/quiz.md).

# Quiz

(1) Content-Length는 body 전체 길이이다. ( O / X )

(2) HTTP/1.1의 Intermediaries (중개자)가 아닌 것은?

* 1. Proxy
* &#x20;   2\. Gateway (reverse proxy)
* &#x20;   3\. Tunnel
* &#x20;   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 명칭으로 표시하시.&#x20;

<http://example.com:80/\\~smith/home.html&#x20>;

(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에서 어느 부분에 관한 내용인가?

![](/files/-MT0eeqPNHesgm8AHeUK)

&#x20;(25) 다음 빈칸에 들어갈 알맞은 단어는?

HTTP/1.1 101 Switching Protocols \
Connection: \[빈칸]\
&#x20;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 명칭으로 표시하시오.&#x20;

, <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\
&#x20;                               \*( header-field CRLF )\
&#x20;                               CRLF\
&#x20;                               \[ 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
```

#### &#x20;2. Status Line

```
ㄱ. HTTP/1.1 404 Not Found.
```

(12) 헤더 필드를 무시하면 서버의 smuggling 공격 취약성이 증가한다. smuggling 공격 이란?

Request smuggling(\[Linhart])은 다양한 수신자 간의 프로토콜 구문 분석의 차이를 이용하여 겉으로 보기에는 무해한 요청 내에서 추가 요청(다른 경우 정책에 의해 차단되거나 비활성화될 수 있음)을 숨기는 기술이다.

{% embed url="<https://code1018.tistory.com/240>" %}

(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 헤더 필드를 보내면 안 된다.&#x20;

(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 이 나오면서 멀티플랙싱 알고리즘으로 대체됐다. &#x20;

(25) 다음 빈칸에 들어갈 알맞은 단어는?

HTTP/1.1 101 Switching Protocols \
Connection: upgrade\
&#x20;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 규칙에 대하여 아래 예시중 적합하지 않은 것을 고르시오.

&#x20;ㄷ, ㄹ, ㅁ

(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** )

{% embed url="<https://stackoverflow.com/questions/31237198/is-it-possible-to-include-multiple-crlfs-in-a-http-header-field>" %}

더 이상 사용하지 않는다.

(30) HTTP/1.1 은 HTTP/0.9 요청을 지원해야한다. ( O / **X** )

(31) Pipelining은 GET/HEAD에는 적용한수있는 반면, POST/PUT에서는 적용불가능하다. ( **O** / X )


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hochan049.gitbook.io/cs-interview/web/rfc-7320/quiz.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
