Checkpoint - HTTP/네트워크

YoungJoon Suh·2022년 4월 21일
0
  1. IP에 대한 옳은 설명은?
    IP 패킷에는 출발지, 목적지의 IP 주소가 포함된다.
    IP 주소는 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다.
    IP 패킷에는 PORT 정보가 포함되어 있지 않기 때문에 같은 IP 주소 내에서 프로세스를 구분할 수 없습니다.
    TCP는 IP보다 높은 계층의 프로토콜이므로 IP의 한계를 보완할 수 있습니다.

  2. TCP와 UDP에 대해 옳은 설명을 모두 고르시오.
    TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위해 3 way handshake를 사용한다.
    UDP는 비 연결형 서비스를 지원하는 전송계층 프로토콜이다.
    UDP는 데이터 전달 순서를 보장하지 않으며 IP에 PORT, 체크섬 정보만 추가된 비교적 단순한 프로토콜입니다.
    또한 UDP는 TCP와 같은 3 way handshake를 사용하지 않기 때문에 속도가 더 빠르지만 TCP에 비해 신뢰성이 낮습니다.

  3. HTTP 헤더와 그에 대한 설명은?
    Location: 페이지 리다이렉션
    Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간
    Content-Language: 표현 데이터의 자연 언어(e.g. 한국어)를 설명하는 헤더입니다.
    Content-Type: 표현 데이터의 형식

  4. 우선 순위는 0~1사이의 숫자로 표현하며 숫자가 클수록 더 높은 우선순위를 가집니다.

  5. HTTP 검증 헤더에 대해 옳은 설명을 모두 고르시오.
    ETag 값은 If-None-Match로 검증할 수 있다.
    Last-Modified 헤더엔 데이터의 최종 수정 날짜 정보가 표시된다.
    서버에서 별도의 캐시 로직을 관리하고 싶은 경우에는 단순히 해시값을 이용해 데이터를 검증하는 ETag를 사용합니다.

  6. 프록시 캐시에 대해 옳은 설명을 모두 고르시오.
    프록시 서버에서 관리하는 캐시는 public 캐시이며 클라이언트에만 저장되는 캐시를 Private 캐시라 합니다.
    Cache-Control: public을 사용하면 응답을 Public 캐시에 저장할 수 있다.
    Cache-Control: no-cache를 사용하면 프록시 서버와 원 서버 연결이 끊어지더라도 프록시 서버의 캐시 데이터를 사용할 수 있다.
    no-store의 경우, 데이터에 민감한 정보가 있으므로 저장하면 안 된다는 의미로 데이터가 캐시되지 않으며 데이터를 메모리에서 사용하고 최대한 빨리 삭제합니다.

  7. HTTP 통신의 두 가지 속성은?
    stateless(무상태성)와 connectionless(비연결성)

  8. IP에 대한 설명으로 맞는 것은?
    IP는 패킷(packet)이라는 통신 단위로 데이터 전달을 합니다.
    IP는 Internet Layer에서 사용되는 프로토콜입니다. (Transport layer가 아님)
    IP는 패킷을 받을 대상이 없거나 서비스 불능 상태라고 하더라도 패킷을 전송하며 이를 비연결성이라고 합니다.
    IP는 중간에 패킷이 사라질 수 있고, 패킷의 순서를 보장하지 않으며 이러한 특징을 비신뢰성이라고 합니다.

  9. 다음 설명 중 옳은 것은?
    네트워크 프로토콜 계층은 OSI 7계층 모델과 TCP/IP 4계층 모델로 나눌 수 있습니다.
    TCP/IP 4 계층은 OSI 7 계층보다 먼저 개발되었으며 TCP/IP 프로토콜 계층은 OSI 모델의 계층과 정확하게 일치하지는 않습니다.
    HTTP는 애플리케이션 계층에 속하며, 전송계층에 속하는 프로토콜로는 대표적으로 TCP, UDP등이 있습니다.
    애플리케이션 계층으로 갈수록 높은 계층이며, 네트워크 인터페이스 계층(물리 계층)으로 갈수록 낮은 계층이라고 합니다.

  10. 유저가 작성한 메시지에 대해서 네트워크 상황을 순서대로 나열하여라.
    유저의 메시지 - 애플리케이션 계층 - 전송 계층 - 인터넷 계층 - 네트워크 인터페이스 계층(물리 계층)

  11. TCP는 UDP보다 속도는 느리지만 신뢰성은 더 높습니다.

  12. HTTP3 부터 UDP를 사용하며, 여러 기능을 커스터마이징 하여 사용할 수 있다는 장점이 있습니다.

  13. HTTP에 대한 설명 중 맞는 것은?
    HTTP을 사용하면 해당 자원들을 각각 보낼 때마다 매번 연결을 반복해야 하며, 비효율성을 해결하기 위해 지속적 연결(Persistent Connections)를 사용합니다.
    HTTP는 무상태성을 특징으로 가지기 때문에 서버를 확장하는데 용이하고, 클라이언트에서는 추가 데이터를 전송해야 합니다.
    HTTP에서는 서버가 클라이언트의 상태를 보존하지 않는 무상태 프로토콜입니다.

  14. 다음 중 옳은 설명은?
    2021년 기준, 현재 가장 많이 사용되는 HTTP 버전은 HTTP /1.1입니다.
    TCP의 3 way handshake는 논리적 연결(가상 연결)로 이루어집니다.
    IP는 지정한 IP주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터를 전달합니다.
    UDP는 데이터 전달 여부 및 순서를 보장하지 않습니다.

  15. HTTP 메시지에 대한 내용은?
    HTTP 메시지는 헤더와 바디로 구분할 수 있습니다.
    HTTP 바디(메시지 본문)에서 모든 표현(Representation) 데이터를 전달합니다.
    메시지 본문인 바디는 페이로드라고 합니다.
    HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 담기 위해 사용합니다.

  16. 옳은 것은?
    표현 헤더는 요청, 응답 둘 다 사용합니다.
    Content-Type 헤더는 표현 데이터의 형식을 나타내며, 대표적으로는 application/json, Text/html 등이 있습니다.
    Content-Language 헤더는 표현 데이터의 자연언어를 의미합니다.

  17. 다음 중 표현 헤더를 설명하는 내용이 일치하는 것은?
    Content-Length: Content-Length는 표현 데이터의 길이를 의미합니다. Transfer-Encoding은 chunked 방식으로 인코딩하여, 전체 데이터를 분할하여 보내기 때문에 전체 데이터 크기를 알 수 없어, Cotent-Length 헤더와 함께 사용할 수 없습니다.

  18. HTTP 주요 헤더와 헤더를 설명하는 내용이 일치하는 것은?
    Referer: 현재 요청된 페이지의 이전 웹 페이지 주소를 의미하며, 만약 링크를 타고 들어왔다면 해당 링크를 포함하고 있는 페이지의 주소가 이 헤더에 포함됩니다.
    User-Agent: 클라이언트의 애플리케이션 정보를 의미하며, 해당 애플리케이션, OS 등의 정보를 제공합니다.
    Host: 요청한 호스트 정보(도메인명)을 의미하며, 하나의 IP 주소에 여러 도메인이 적용되었을 때 호스트 정보를 명시하기 위해 사용합니다.
    Origin: 서버로 POST 요청을 보낼 때, 요청을 시작한 주소를 나타냅니다.

  19. HTTP 주요 헤더와 헤더를 설명하는 내용이 일치하는 것을 모두 고르시오.
    Server: 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보를 나타내며, 프록시 서버를 사용하는 경우, 프록시 서버의 정보를 나타내기도 합니다.
    Location: 리다이렉트할 페이지의 URL을 의미하며, 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 리다이렉트 합니다.
    Allow: 허용 가능한 HTTP 메서드를 의미합니다.
    Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간을 의미하며, 503(Service Unavailable) 응답 코드와 함께 보내지면, 언제까지 기다려야 하는지 알 수 있습니다.

  20. 콘텐츠 협상 헤더에 대한 설명으로 옳은 것은?
    협상 헤더는 요청에서 사용 가능합니다.
    협상 헤더에서는 원하는 콘텐츠에 대한 우선순위를 지정할 수 있습니다.
    Accept는 클라이언트가 선호하는 미디어 타입을 전달합니다.

  21. 캐시에 대한 설명으로 옳은 것은?
    Cache-Control 헤더를 통해 캐시 유지 시간뿐 아니라, 캐시 여부, 프록시 캐시의 유지시간 등을 설정할 수 있습니다.

  22. 캐시 검증 헤더와 조건부 요청에 대한 내용으로 옳은 것은?
    캐시 유효기간이 지난 이후에는 Last-Modified, If-Modified-Since와 ETag, If-None-Match 두 쌍의 헤더를 통해, 검증하고 사용할 수 있습니다.
    Last Modified는 데이터가 마지막으로 수정된 시간 정보를 헤더에 포함하며, 응답 결과를 캐시에 저장할 때 데이터 최종 수정일도 저장됩니다.
    서버에서 완전히 캐시를 컨트롤 하고 싶은 경우 ETag를 사용할 수 있습니다.
    If-None-Match를 요청 헤더에 작성하여 보내면, ETag 값을 검증하고 수정되지 않았다면 응답 결과를 재사용하고, 헤더 데이터를 갱신합니다.

  23. 캐시를 무효화하기 위한 헤더의 내용으로 옳은 것은?
    Cache-Control: no-cache - 데이터는 캐시해도 되지만, 항상 원 서버에 검증하고 사용해야 합니다.
    Cache-Control: must-revalidate - 캐시가 만료된 후, 최초 조회 시 원 서버에 검증을 해야 하며, 원 서버 접근에 실패하면 반드시 오류가 발생해야 합니다.

profile
저는 서영준 입니다.

0개의 댓글