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을 입력하면 벌어지는 일:
- DNS 조회: 도메인 네임을 IP 주소로 변환.
- TCP 연결: IP 주소를 통해 웹 서버와 3-way handshake를 수행.
- HTTP 요청: 브라우저가 서버에 페이지 데이터를 요청.
- HTTP 응답: 서버가 HTML/CSS/JS 데이터를 응답.
- 브라우저 렌더링: 받은 데이터를 브라우저가 해석하여 화면에 출력.
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를 통해 통신).
암호화 방식
- 대칭키: 암호화와 복호화 키가 동일 (빠름, 키 전달의 위험).
- 비대칭키(공개키): 암호화(공개키)와 복호화(개인키) 키가 다름 (안전함, 느림).