Interview Questions - Network

이소라·2023년 4월 13일
0

Interview Questions

목록 보기
10/67

1. 브라우저 검색창에 URL을 입력하면 어떤 일이 발생하는지 설명해주세요. (네트워크 관점)

  1. 부라우저 주소창에 URL을 입력합니다.
  2. 브라우저가 URL의 IP 주소를 찾기 위해 캐시에서 DNS 기록을 확인합니다.
  3. 캐시에 요청한 URL이 없으면, ISP의 DNS 서버가 DNS 쿼리로 URL을 호스팅하는 서버의 IP 주소를 찾습니다.
  4. 브라우저가 해당 서버와 TCP 연결을 시작합니다.
  5. 브라우저가 웹서버에 HTTP 요청을 합니다.
  6. 서버가 요청을 처리하고 HTTP 응답을 보냅니다.
  7. 브라우저가 HTML 컨텐츠를 보여줍니다.

1.1 DNS에 대해 설명해주세요.

  • DNS는 Domain Name System의 약어로 웹 사이트의 IP 주소와 도메인 주소를 연결해주는 시스템입니다.

1.2 브라우저가 어디서 DNS 기록을 확인하나요?

  • 브라우저는 브라우저 캐시, OS 캐시, 라우터 캐시, ISP 캐시를 순서대로 확인하면서 원하는 DNS 기록을 찾습니다.
  • 캐시에 원하는 DNS 기록이 없다면, ISP에서 DNS 기록을 찾습니다.

1.3 DNS Lookup에 대해 설명해주세요.

  • DNS Lookup은 DNS 서버에서 인터넷 도메인 이름을 사용해 IP 주소를 알아내는 과정을 말합니다.
    • 루트 네임 서버, 최상위 도메인 네임 서버, 2차 도메인 네임 서버, 3차 도메인 네임 서버 순으로 이동하면서 URL과 일치하는 IP 주소를 찾습니다.

1.4 TCP에 대해 설명해주세요.

  • TCP는 Transmission Control Protocol의 약어로 전송 제어 프로토콜을 말합니다. TCP는 3-way handshake를 통해 서버 간의 연결을 합니다.
    • 3-way handshake는 클라이언트와 서버가 SYN과 ACK 메세지를 교환하여 연결을 설정하는 과정을 말합니다.
      1. 클라이언트가 서버에 SYN 패킷을 보내 새 연결이 가능한지 여부를 묻습니다.
      2. 서버에 새 연결을 수락할 수 있는 열린 포트가 있을 경우, SYN/ACK 패킷을 사용하여 응답합니다.
      3. 클라이언트는 SYN/ACK 패킷을 받고 ACK 패킷을 보내서 연결을 승인합니다.

1.5 HTTP 상태 코드에 대해서 간략하게 설명해주세요.

  • HTTP 상태 코드는 HTTP 응답의 상태를 나타내는 코드입니다.
    • 1xx (Information Response) : 정보 메세지를 나타냅니다.
    • 2xx (Successful Response) : 서버와의 요청이 성공했음을 나타냅니다.
    • 3xx (Redirection Message) : 요청 완료를 위해 추가 작업 조치가 필요하다는 것을 의미합니다.
      • 301: 요청한 리소스의 URL이 변경되었음
    • 4xx (Client Error Response) : 클라이언트의 요청에 에러가 있음을 의미합니다.
    • 5xx (Server Error) : 서버의 오류로 요청을 수행할 수 없다는 것을 의미합니다.



2. REST API에 대해 설명해주세요.

  • REST API는 REST를 기반으로 구현한 API를 말합니다.
    • 여기서 REST는 HTTP를 기반으로 클라이언트가 서버의 리소스를 접근하는 방식을 규정한 아키텍처를 말합니다.
  • REST API는 자원, 자원에 대한 행위, 행위에 대한 구체적인 표현으로 구성됩니다.

2.1 REST API의 설계 원칙에 대해 설명해주세요.

  1. URL은 리소스를 표현하는 데 중점을 두어야 합니다.
  2. 리소스에 대한 행위는 HTTP 요청 메소드로 표현합니다.



3. HTTP와 HTTPS의 차이점에 대해 설명해주세요.

  • HTTP는 암호화가 추가 되지 않았기 때문에 보안에 취약한 반면에, HTTPS는 암호화로 인해 안전하게 데이터를 주고 받을 수 있습니다.
  • HTTPS를 사용하면 암호화/복호화 과정이 필요해서 HTTP에 비해 속도가 느립니다.
  • HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생합니다.

3.1 HTTP와 HTTPS를 언제 사용하나요?

  • HTTP는 노출이 되도 괜찮은 단순한 정보를 처리할 때, HTTPS는 개인 정보와 같은 민감한 정보를 처리할 때 사용합니다.

3.1 HTTPS의 암호화 방식에 대해 설명해주세요.

  • HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식을 모두 사용하고 있습니다.
  • 대칭키 암호화 방식은 클라이언트와 서버가 동일한 키를 사용해 암호화와 복호화를 진행합니다. 그래서 키가 노출되면 매우 위험하지만 연산 속도가 빠릅니다.
  • 비대칭키 암호화 방식은 한쌍의 공개키와 개인키를 사용하여 암호화와 복호화를 진행합니다. 공개키는 노출되어도 비교적 안전하지만 연산 속도가 느립니다.



참고

0개의 댓글