Study note/CS

네트워크

공대 아로마 2024. 4. 12. 17:06

기술면접을 위해 기초 CS에 대한 복습중이다.
공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다.
내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의!

 

HTTP의 GET과 POST 비교

  • GET: HTTP Request Message의 header 부분에 있는 url에 데이터가 담겨서 전송
    크기에 제한이 있음. 보안이 필요한 것에는 적절하지 않음.
    Select적인 성향. 서버의 값을 변경하지 않음.
  • POST: HTTP Message의 Body에 담겨서 전송
    크기, 보안 면에서 GET보다 낫다.
    서버의 값을 변경/추가 등

Handshake

  • 연결 성립(3-way-handshake): 클라이언트와 서버 사이에 세 번
  • 클라이언트 서버 -----SYN(a)------> <-ACK(a+1),SYN(b)- -----ACK(b+1)---->
  • 연결 해제(4-way-handshake): 클라이언트와 서버 사이에 네 번
  • 클라이언트 서버 -----Fin----> <----ACK----- <----Fin----- -----ACK---->
  • why 3-way?: 양방향성. 패킷을 주고/받고 둘 다 되는지 확인하기 위해
  • 처음 SYN 보낼 때 난수를 보내는 이유: 이전의 connection으로 오는 '패킷'인지, 'SYN'인지 구분하기 위해

UDP - User Datagram Protocol

  • 비연결형 프로토콜
  • 수신 여부 확인 X, 신뢰성↓, 속도↑
  • 1:N, N:N 가능
  • ex) 영상 스트리밍

TCP - Transmission Control Protocol

  • 연결형 프로토콜
  • handshaking으로 수신 여부 확인, 신뢰성↑, 속도↓
  • 1:1로만 가능
  • 전송 순서 보장 (패킷에 번호를 붙여서 나중에 재조립)

HTTP & HTTPS

  • HTTPS: SSL 적용으로 보안 처리. 제 3자가 볼 수 없음. 신뢰할만한 사이트 인증.
  • 대칭키: 같은 key로 암호화/복호화. key가 노출되면 위험하다는 단점
  • 비대칭키: 개인 키 - 공개 키 (private key - public key)
  • 인증서: CA에서 발급한 인증서. 인증을 받아야만 HTTPS 사이트가 된다.
    3번과 5번에서 만든 비대칭키와 비대칭키로 클라이언트와 서버가 소통하게 된다.
    1. 클라이언트와 서버가 핸드쉐이킹을 한다. 이 때 서버는 인증서를 포함시켜 보낸다.
    2. CA가 발급한 인증서가 맞다면 CA의 개인키로 암호화 되어 있을 것이고
      브라우저에 저장된 개인키로 인증서 복호화가 가능할 것이다.
    3. 인증서에는 서버의 공개키가 포함되어 있다. =>비대칭키
    4. 클라이언트에서 1번에서 주고 받은 데이터로 임시 key를 만들고, 그걸 비대칭키 시스템으로 서버로 보낸다.
    5. 임시 key를 이용해 대칭키를 만든다.

'Study note > CS' 카테고리의 다른 글

디자인 패턴 2  (0) 2024.04.12
디자인 패턴 1  (0) 2024.04.12
DB 데이터베이스  (0) 2024.04.12
개발 상식  (0) 2024.04.12
Operation System  (0) 2024.04.12