ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ CS 기술면접 ] 네트워크 예상질문 모음 1 !
    공부 !/Computer Science 2022. 5. 22. 01:25
    반응형

    네트워크 질문 모음

    # http

    HTTP 프로토콜의 특성 2가지에 대해 설명해주세요.

    HTTP 프로토콜은 stateless, connectionless의 특징을 갖고 있습니다. stateless란, 서버와 클라이언트 간 연결이 끊어지면 통신이 종료되고 상태 정보를 버린다는 특성입니다. connectionless란, 서버가 클라이언트로부터 요청을 받고 그에 맞는 응답을 주고 나면 서버에서 연결을 끊어 버리는 것을 말합니다. HTTP 1.1 Connection: Keep-Alive 옵션 이전에는 connectionless가 기본이었으나 keep-alive 옵션을 주면 연결을 유지할 수 있습니다.

     

    HTTP 메소드 종류와 사용법을 CRUD 관점에서 설명해주세요.

    먼저 Create를 위해 POST를 사용할 수 있습니다. 서버나 특정 리소스에 엔티티를 제출할 때 사용되는 메소드입니다. Read를 위해서는 GET을 사용할 수 있습니다. 특정 리소스의 표시를 요청하며, GET 요청은 오직 데이터 수신만 합니다. 다음으로 Update를 위해서는 PATCH, PUT, POST를 사용할 수 있지만 PATCH가 대표적입니다. 리소스의 일부를 수정할 수 있으며, PUT은 리소스 전체를 교체합니다. 마지막으로 Delete는 이름 그대로 DELETE 메소드를 사용해 특정 리소스를 삭제할 수 있습니다.

     

    HTTP 응답 코드 중 클라이언트 에러를 나타내는 401번과 403번의 차이점을 설명해 주세요.
    401번은 Unauthorized로, 클라이언트가 응답을 받기 위해 권한을 가진 사용자인지 인증할 필요가 있다는 의미입니다. 403번은 Forbidden로, 클라이언트가 콘텐츠에 접근할 권리가 없음을 의미합니다. 401과 다른 점은 이 때 서버는 클라이언트가 누구인지 알고 있다는 점입니다.

     

    # http version & http , https & URL

    HTTP 1.1 / 2.0 / 3.0 의 차이점에 대해서 설명해주세요
    HTTP 1.1 은 Pipelining이 특징이다. 기본적으로 HTTP 요청은 순차적이기 때문에 요청에 대한 응답을 받고 나서야 새로운 요청을 보낸다. 하지만 HTTP 1.1 에서는 응답을 기다리지 않고 요청을 연속적으로 보내는 기능이 추가되었다. 하나의 connection에서 한 번에 순차적인 여러 요청을 보내고 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄인다.

    HTTP 2.0 은 Multiplexed Streams가 특징이다. HTTP 1.1 에서는 요청의 순서와 응답의 순서는 동기화 되어야 하므로 특정 요청을 처리하는데 많은 시간이 걸린다면 그 뒤의 다른 요청을 처리하는데 지연이 발생하여 HOL Blocking 이 발생한다. HTTP 2.0 은 하나의 Connection으로 동시에 여러 개의 메세지를 주고 받을 수 있다. 응답은 요청 순서에 상관없이 Stream 으로 받기 때문에 HOL Blocking 발생이 줄어든다.

    HTTP 3.0은 TCP가 아닌 UDP를 사용한다는 것이다. HTTP 3.0 은 QUIC라는 프로토콜 위에서 돌아가는 HTTP인데, QUIC은 UDP를 사용하는 프로토콜이다. 그리고 TCP hand shake 과정을 최적화하는 것에 초점을 맞추어 설계되었다. UDP는 TCP에 비해 헤더가 많이 비어있기에, 커스터마이징할 수 있는 여지가 많고 이를 이용해 개발자가 구현을 어떻게 하느냐에 따라서 신뢰성을 확보할 수 있다.

     HTTP와 HTTPS에 대해서 설명해주세요
    HTTP는 웹 상에서 클라이언트와 서버 간에 요청/응답으로 정보를 주고 받을 수 있는 프로토콜이다. 가장 큰 특징은 Connectionless와 Stateless 이다. 그런데, HTTP는 평문 통신이기 때문에 도청이 가능하고 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 또한, 완전성을 증명할 수 없기 때문에 변조가 가능하다. 그래서 이것을 개선하기 위해 HTTPS 가 등장하게 되었다.
    HTTPS 는 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전의 프로토콜이다. 웹 상에서 정보를 암호화하는 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. SSL 을 사용하여 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.

     URL에 https://www.naver.com 을 쳤을 때 일어나는 일에 대해 아는대로 설명해주세요
    url 에 입력된 값을 브라우저 내부에서 HTTP Request 메시지로 만든다. 만들어진 메시지를 웹 서버로 전송한다. 이 때 만들어진 메시지 전송은 브라우저가 직접하는 것이 아니라 OS에 의뢰하여 메시지를 전달한다. 단, OS에 송신을 의뢰할 때는 도메인명이 아니라 ip 주소로 메시지를 받을 상대를 지정해야 하는데, 이 과정에서 DNS 서버를 조회해야 한다.

    프로토콜 스택이 브라우저로부터 메시지를 받아 패킷 속에 저장한다. 그리고 수신처 주소 등의 제어정보를 덧붙인다. 그 다음 패킷을 LAN 어댑터에 넘긴다. LAN 어댑터는 다음 Hop의 MAC 주소를 붙인 프레임을 전기신호로 변환시킨다. 그리고 신호를 LAN 케이블에 송출시킨다.

    LAN 어댑터가 송신한 프레임은 스위칭 허브를 경유하여 인터넷 접속용 라우터에 도착한다. 라우터는 패킷을 프로바이더(통신사)에게 전달하고 인터넷으로 들어가게 된다.

    패킷은 인터넷의 입구에 있는 액세스 회선에 의해 POP(통신사용 라우터)까지 운반된다. POP 를 거쳐 인터넷의 핵심부로 들어가게 된다. 수 많은 고속 라우터들 사이로 패킷이 목적지를 향해 흘러가게 된다.

    패킷은 인터넷 핵심부를 통과하여 웹 서버측의 LAN 에 도착한다.
    방화벽이 도착한 패킷을 검사하고 캐시서버가 패킷이 웹 서버까지 가야하는지 가지 않아도 되는지를 판단한다.

    패킷이 물리적인 웹 서버에 도착하면 웹 서버의 프로토콜 스택은 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다. 메시지를 받은 웹 서버 애플리케이션은 요청 메시지에 따른 데이터를 응답 메시지에 넣어 클라이언트로 회송한다. 왔던 방식대로 응답 메시지가 클라이언트에게 전달된다.

     

    # cors, restful api, socket.io vs web socket

     restful  웹서비스는 무엇인지 특징과 함께 설명해주세요
    rest 란 대표적인 상태전달의 방법으로 restful 웹 서비스는 웹에 존재하는 모든 자원에 대한 고유한 URI 를 부여하여 자원에 대한 주소를 지정하고 HTTP Method 를 통해 자원에 대한 CRUD 동작을 적용한다는 특징이 있습니다
    단순히 들어오는 요청만 처리하기 때문에 구현이 단순합니다

    SOP 가 존재하는 이유를 설명해주세요
    SOP 란 같은 출처의 리소스를 공유할 수 있다는 규칙으로 보안의 취약점을 통해 정보를 탈취할 수 있기 때문에 이를 방지하기 위해 존재합니다 CORS 는 이를 우회하기 위한 여러 방법 중 가장 권장되는 방법입니다

     socket.io 와 web sokcet 의 차이점을 설명해주세요
    socket.io 는 상용화되어 있으며 브라우저의 종류에 상관없이 다양한 방법의 웹 기술을 실시간으로 구현할 수 있도록 한 기술입니다 web socket 은 사용할 수 있는 웹 브라우저의 종류에 제약이 있으며 미래의 기술로 아직 인터넷 기업에서 상용화 되어있진 않습니다

    반응형

    댓글

Designed by SooJI