2026-02-16
HTTP (HyperText Transfer Protocol)
프로토콜: 컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속
HTTP란 무엇인가
클라이언트와 서버가 데이터를 주고받기 위한 통신 규약(프로토콜)
- 브라우저가 서버에 요청(Request)을 보내고
- 서버가 응답(Response)을 보내는 구조
- 웹의 기본 통신 방식
HTTP의 기본 구조
HTTP는 요청–응답(Request–Response) 모델로 동작
- Request 구조
GET /users HTTP/1.1 Host: example.com Content-Type: application/json구성 요소:
- Method
- URL
- Headers
- Body (선택)
- Response 구조
HTTP/1.1200 OK Content-Type: application/json구성 요소:
- Status Code
- Headers
- Body
HTTP의 특징
- Stateless (무상태)
- 서버는 이전 요청을 기억하지 않는다.
- 매 요청은 독립적이다.
- ⇒ 그래서 쿠키, 세션, 토큰이 필요
- Connectionless (비연결성)
- 요청–응답 후 연결을 끊는다.
- HTTP/1.1부터는 Keep-Alive로 개선됨.
URL
서버에 자원을 요청하기 위해 입력하는 영문 주소

HTTP 메서드
⇒ REST API 설계의 핵심
| 메서드 | 역할 |
|---|---|
| GET | 데이터 조회 |
| POST | 데이터 생성 |
| PUT | 전체 수정 |
| PATCH | 부분 수정 |
| DELETE | 삭제 |
HTTP 상태 코드
| 범위 | 의미 |
|---|---|
| 1xx | 정보 |
| 2xx | 성공 |
| 3xx | 리다이렉션 |
| 4xx | 클라이언트 오류 |
| 5xx | 서버 오류 |
자주 쓰이는 코드:
- 200 OK
- 201 Created
- 204 No Content
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 500 Internal Server Error
HTTP와 HTTPS 차이
- HTTP는 평문 통신
- HTTPS는 HTTP + SSL/TLS 암호화
- 데이터가 암호화되어 전송됨
- 보안 필수
HTTP 버전 차이
- HTTP/1.1
- Keep-Alive
- 하지만 Head-of-Line Blocking 문제 존재
- HTTP/2
- 멀티플렉싱
- 헤더 압축
- 서버 푸시
- HTTP/3
- TCP 대신 QUIC 사용
- 속도 및 안정성 개선
프론트엔드에서 중요한 HTTP 개념
- CORS (Cross-Origin Resource Sharing)
- 다른 출처로 요청 시 브라우저가 차단
- 서버가 허용 헤더를 내려야 통과
- 캐싱 (Caching)
Cache-ControlETagLast-Modified- ⇒ 성능 최적화 핵심
- 쿠키 vs 토큰
- 쿠키: 브라우저 자동 전송
- 토큰(JWT): 헤더에 직접 포함
요약
- HTTP는 요청–응답 기반 통신 프로토콜
- Stateless(무상태) 구조
- 메서드와 상태 코드로 의도 표현
- HTTPS는 암호화 버전
- CORS, 캐싱은 프론트에서 매우 중요
참고자료
- https://velog.io/@simoniful/%ED%94%84%EB%9F%B0%ED%8A%B8%EC%97%94%EB%93%9C-%EA%B4%80%EB%A0%A8-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%98%EB%8A%94-HTTP-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-1
- https://yooneeee.tistory.com/121
- https://joshua1988.github.io/web-development/http-part1/
- https://f-lab.kr/insight/http-requests-cors-20240814