CS 지식 - 네트워크

labbiel·2025년 12월 25일

1. HTTP Method

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

Method역할설명멱등성(Idempotent)
GET조회리소스를 조회할 때 사용Yes
POST처리/등록요청 데이터를 처리하거나 새 리소스 생성No
PUT전체 교체리소스를 통째로 갈아 끼울 때 사용Yes
PATCH일부 수정리소스의 일부분만 수정할 때 사용No
DELETE삭제리소스를 제거할 때 사용Yes

GET vs POST 차이점 상세

  • GET (공개적인 조회)
    • 데이터를 URL의 Query String에 포함시켜 전송.
    • URL에 데이터가 노출되므로 보안이 필요한 데이터(비밀번호 등)에는 부적합.
    • 브라우저 캐싱이 가능하여 동일 요청 시 속도가 빠름.
  • POST (안전한 처리)
    • 데이터를 HTTP Message Body에 담아 전송.
    • URL에 데이터가 직접 노출되지 않아 GET보다 상대적으로 안전.
    • 리소스를 생성하거나 대용량 데이터를 보낼 때 적합.

2. TCP와 UDP의 비교

데이터를 전송하는 방식(Protocol)의 차이.

핵심 차이점

  • TCP (Transmission Control Protocol)
    • 특징: 연결형 서비스, 높은 신뢰성 보장, 흐름/혼잡 제어.
    • 단점: 연결 설정 과정(Handshaking)으로 인해 UDP보다 속도가 느림.
    • 용도: 파일 전송(FTP), HTTP, 이메일 등 데이터 누락이 없어야 하는 경우.
  • UDP (User Datagram Protocol)
    • 특징: 비연결형 서비스, 신뢰성 낮음, 전송 순서 보장 안 됨.
    • 장점: 확인 절차가 없어 속도가 매우 빠름.
    • 용도: 실시간 스트리밍, 온라인 게임, DNS 조회.

TCP Handshaking

  • 3-way Handshaking (연결): SYN → SYN+ACK → ACK 과정을 거쳐 통신 가능 상태 확인.
  • 4-way Handshaking (종료): FIN → ACK → FIN → ACK 과정을 통해 연결을 안전하게 해제.

3. HTTP vs HTTPS (보안의 유무)

HTTP (Hyper Text Transfer Protocol)

  • 특징: 평문(Plain Text) 데이터를 전송하므로 스니핑(가로채기) 시 내용이 노출됨.
  • Stateless: 상태를 저장하지 않음.
  • Connectionless: 응답 후 연결을 끊음 (리소스 절약).

HTTPS (HTTP + Secure)

  • 특징: SSL(TLS) 프로토콜을 사용하여 데이터를 암호화.
  • 보안성: 데이터 기밀성, 무결성, 서버 인증(Certificate)을 보장.
  • 동작: HTTP가 SSL과 통신하고, SSL이 TCP와 통신하는 샌드위치 구조.

4. 쿠키(Cookie) vs 세션(Session)

비연결성(Connectionless)인 HTTP에서 사용자를 기억하기 위한 방법.

구분쿠키 (Cookie)세션 (Session)
저장 위치클라이언트 (브라우저)서버 (메모리 or DB)
보안성낮음 (로컬에 저장됨)높음 (서버에서 관리)
속도빠름느림 (서버 처리가 필요)
라이프사이클만료 기한까지 로컬에 유지브라우저 종료 시 삭제 가능

5. 인증 방식: 세션 기반 vs 토큰 기반(JWT)

세션 기반 인증 (Stateful)

  • 서버가 사용자의 로그인 상태를 메모리나 DB에 유지.
  • 단점: 사용자가 많아지면 서버 부하가 커지고, 서버 확장 시 세션 공유 설정이 복잡.

토큰 기반 인증 (Stateless / JWT)

  • 서버가 상태를 저장하지 않고, 사용자에게 암호화된 토큰(JWT)을 발급합니다.
  • JWT 구조: Header.Payload.Signature
    • Header: 알고리즘, 토큰 타입 정보.
    • Payload: 사용자 정보(Claim). 누구나 볼 수 있으므로 비번 금지.
    • Signature: 서버 비밀키로 만든 위변조 방지용 서명.

6. 웹 통신의 큰 흐름

브라우저에 www.naver.com을 입력하면 벌어지는 일:

  1. DNS 조회: 도메인 네임을 IP 주소로 변환.
  2. TCP 연결: IP 주소를 통해 웹 서버와 3-way handshake를 수행.
  3. HTTP 요청: 브라우저가 서버에 페이지 데이터를 요청.
  4. HTTP 응답: 서버가 HTML/CSS/JS 데이터를 응답.
  5. 브라우저 렌더링: 받은 데이터를 브라우저가 해석하여 화면에 출력.

7. OSI 7 계층 (OSI 7 Layer)

네트워크 통신 과정을 7단계로 표준화한 모델.

  • 7. 응용(Application): 사용자 인터페이스 (HTTP, FTP, DNS)
  • 6. 표현(Presentation): 데이터 형식 정의, 암호화, 압축 (JPEG, SSL)
  • 5. 세션(Session): 통신 세션 유지 및 관리
  • 4. 전송(Transport): 종단 간 신뢰성 있는 전송 (TCP, UDP) / 단위: Segment
  • 3. 네트워크(Network): 경로 결정 및 주소 할당 (IP, Router) / 단위: Packet
  • 2. 데이터링크(Data Link): 물리적 연결을 통한 신뢰성 전송 (Ethernet, Switch) / 단위: Frame
  • 1. 물리(Physical): 전기적 신호 전달 (Cable, Hub) / 단위: Bit

8. 필수 네트워크 상식

Connection Timeout vs Read Timeout

  • Connection Timeout: 클라이언트가 서버에 접속을 시도하는 시간 자체가 초과됨 (서버 다운, 방화벽 문제).
  • Read Timeout: 접속은 성공했으나, 서버가 결과를 주는 데 시간이 너무 오래 걸림 (서버 로직 부하).

공인 IP vs 사설 IP

  • 공인(Public) IP: ISP가 할당하는 고유 주소, 외부(인터넷)에서 접근 가능.
  • 사설(Private) IP: 공유기 내부 망에서 사용하는 주소, 외부에서 직접 접근 불가 (NAT를 통해 통신).

암호화 방식

  • 대칭키: 암호화와 복호화 키가 동일 (빠름, 키 전달의 위험).
  • 비대칭키(공개키): 암호화(공개키)와 복호화(개인키) 키가 다름 (안전함, 느림).

0개의 댓글