2025-08-11 22:22
Tags: 소프트웨어 공학
HTTP
- 문서(HyperText)를 서로 전송(Transfer)하는 규약(Protocol)
- 클라이언트와 서버 구조: 클라이언트가 요청하면 서버가 응답한다.
- 인터넷을 통해 데이터 주고 받는 통신 규약(프로토콜) 자체
요청 메시지 (Request Message)
GET /index.html HTTP/1.1 <-- 시작 줄 (요청 메서드, 경로, 버전)
Host: www.example.com <-- 헤더 (요청에 대한 추가 정보)
User-Agent: Chrome/91.0.4472.124
Accept-Language: ko-KR
(여기는 비어 있음) <-- 본문 (GET 요청에는 보통 없음)
응답 메시지 (Response Message)
HTTP/1.1 200 OK <-- 시작 줄 (버전, 상태 코드, 상태 메시지)
Content-Type: text/html <-- 헤더 (응답에 대한 추가 정보)
Content-Length: 1270
<!DOCTYPE html>... <-- 본문 (실제 웹페이지의 HTML 코드)
HTTP 메서드
- GET: 정보를 조회(Read). 가장 흔하게 사용되는 메서드로, 웹페이지나 데이터를 가져올 때 사용. 서버의 상태를 변경하지 않으므로 **안전(Safe)**하고, 여러 번 요청해도 같은 결과를 반환하므로 **멱등성(Idempotent)**을 가짐.
- POST: 정보를 생성(Create). 요청할 때마다 새로운 데이터가 생성될 수 있으므로 멱등성을 가지지 않음.
- PUT: 정보를 전체 수정(Update). 기존 데이터를 완전히 새로운 데이터로 덮어쓸 때 사용. 여러 번 요청해도 결과는 같으므로 멱등성을 가짐.
- PATCH: 정보를 부분 수정(Update). 데이터의 특정 부분만 변경할 때 사용. (예: 비밀번호만 변경)
- DELETE: 정보를 삭제(Delete). 특정 데이터를 서버에서 삭제할 때 사용. 여러 번 요청해도 결과는 같으므로 멱등성을 가짐.
References
세상을 연결하는 약속, HTTP의 모든 것 개발자를 위한 HTTP와 REST API 핸드북 원리부터 실전 활용까지