티스토리 뷰

etc/면접

면접 준비 - 네트워크

hsm914 2023. 3. 11. 17:44
728x90

- HTTP

데이터를 주고 받기 위한 웹 프로토콜으로, 서버/클라이언트 모델을 따른다.

무상태성 - 서버는 이전의 클라이언트 상태 정보를 저장하지 않음

비연결성 - 서버가 클라이언트의 요청에 대한 응답을 하면 연결을 끊는 것

--> 쿠키, 세션 필요

 

 

- 세션/쿠키 차이

  • 쿠키: 클라이언트의 상태 정보를 키-값 형태로 클라이언트 로컬 브라우저에 저장
  • 세션: 클라이언트에게 고유한 ID를 부여하여 서버에 저장

세션은 서버의 처리가 필요하기 때문에 보안측면에서 더 우수하지만, 요청 속도는 쿠기가 더 빠름

 

 

- 세션/쿠키 동작 방식

  1. 클라이언트가 서버에 접속시 서버에서 세션 ID를 발급
  2. 서버는 세션 ID를 기반으로 쿠키를 포함시켜 클라이언트에게 응답
  3. 클라이언트는 서버에 요청할 때 이 쿠키를 같이 전달
  4. 서버는 쿠키의 세션 ID를 통해 클라이언트 정보를 가져와서 응답

 

 

- HTTP vs HTTPS

HTTP: 평문 데이터를 전송하기 때문에 보안상 문제가 될 수 있음.

HTTPS: 보안이 취약한 HTTP를 개선하기 위해 HTTP의 소켓 부분을 SSL 프로토콜로 감싼 것.

* SSL: 암호화 기반 인터넷 보안 프로토콜. 개인정보 보호, 인증, 데이터 무결성 보장

 

- 웹 흐름

  1. 사용자가 브라우저에 URL을 입력
  2. DNS 서버에서 도메인명으로 서버의 IP 주소를 찾음
  3. PORT 번호와 IP 주소로 HTTP 요청 메세지 생성(https의 경우 포트 번호 생략시 443)
  4. 소켓을 통해 TCP/IP 계층에 전달하여 3way handshake 단계를 거쳐 서버와 연결
  5. HTTP 메세지를 포함하여 TCP/IP 패킷을 생성
  6. 패킷을 받은 서버는 패킷을 해석해 그에 맞는 동작을 하고 HTTP 응답 메세지 생성
  7.  클라이언트는 서버의 응답 메세지를 받아 웹브라우저에 결과값을 출력

 

- TCP vs UDP

TCP: 신뢰성 있는 데이터 전송을 보장하는 연결지향형 프로토콜. 송신자와 수신자가 소켓이라는 종단점을 생성.

UDP: 비연결형 프로토콜. 신뢰성을 보장하지 않아 흐름제어/오류제어/재전송 x. 연결 설정/해제 과정 x

 

 

- 3way handshake

tcp가 연결하는 방식.

  1. 클라이언트가 서버에 접속을 요청하는 syn 패킷을 보냄
  2. 서버는 클라이언트의 패킷을 요청을 수락한다는 ack syn 패킷을 보냄
  3. 클라이언트는 서버의 패킷을 받고 ack를 보냄

 

- 4way handshake

tcp가 연결을 해제하는 방식

  1. 클라이언트가 연결을 종료하겠다는 fin 플래그 보냄
  2. 서버는 확인메시지인 ack를 보내고 보내려던 데이터를 마저 보냄
  3. 서버가 데이터를 모두 보냈다면 클라이언트에게 fin 플래그 보냄
  4. 클라이언트는 확인메시지 ack를 보냄
    서버는 소켓연결을 close, 클라이언트는 아직 못받은 데이터가 있는 경우를 대비해 일정시간동안 기다림. (TIME_WAIT)

 

 

- osi 7 layer

네트워크 통신을 구성하는 요소들을 7개의 계층으로 표준화한 것.

물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구분.

 

 

- http method

클라이언트가 서버에게 요청의 목적을 알리는 수단.

  • get - 데이터 조회 (데이터를 헤더에 추가하여 전송. url에 데이터가 노출되므로 보안적으로 안좋음. 캐시 가능)
  • post - 데이터 처리 (변경/추가/생성) (데이터를 바디에 추가하여 전송. get보다는 비교적 안전)
  • put - 데이터 변경
  • patch - 일부 데이터 변경
  • delete - 데이터 삭제

 

 

- RESTful

REpresentational State Transfer

API 설계의 중심에 자원(Resource)이 있고 HTTP Method를 통해 자원을 처리하도록 설계하는 것.

자원과 행위를 분리. 자원은 URI, 행위는 HTTP Method로 표현.

 

 

- 대칭키 vs 비대칭키 암호화

대칭키: 암호화와 복호화에 동일한 개인키를 사용하는 알고리즘. 키가 중간에 탈취될 수 있음

비대칭키(공개키): 암호화할때는 공개키, 복호화할 때 개인키 사용.

 

 

 

* 참고

https://github.com/JaeYeopHan/Interview_Question_for_Beginner

https://dev-coco.tistory.com/category/%F0%9F%93%8CETC

728x90

'etc > 면접' 카테고리의 다른 글

면접 준비 - 데이터베이스  (0) 2023.03.11
면접 준비 - 스프링, 기타  (0) 2023.03.11
면접 준비 - 운영체제  (0) 2023.03.10
면접 준비 - 자바  (0) 2023.03.10
면접 준비 - 자료구조  (0) 2023.03.10
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함