HTTP
기술노트
🌐 HTTP란?
HTTP(HyperText Transfer Protocol)는 웹에서 HTML 문서나 이미지, 데이터 등을 주고받기 위한 **기본 통신 규약(약속)**입니다.
- 웹 브라우저(클라이언트)와 웹 서버가 **요청과 응답**을 주고받을 때 사용됩니다.
- 우리가 주소창에 `https://example.com`을 입력하면, 브라우저는 HTTP를 통해 HTML 문서를 요청하고, 서버는 그에 맞는 응답을 보내줍니다.
🔧 HTTP의 특징
- **텍스트 기반의 프로토콜**
- 사람이 읽을 수 있는 구조 (예: GET /index.html)
- **요청(Request)과 응답(Response)**으로 구성
- 클라이언트가 요청하고, 서버가 응답함
- **Stateless (상태를 저장하지 않음)**
- 요청 간의 연결 정보를 서버가 기억하지 않음
📬 HTTP 요청 메서드
웹에서 요청할 때 사용하는 **기본 명령어**들입니다:
메서드 | 설명 | 예시 |
---|---|---|
GET | 서버에서 데이터를 가져올 때 사용 | 페이지 보기 |
POST | 서버에 데이터를 보낼 때 사용 | 회원가입, 로그인 |
PUT | 서버에 데이터를 '수정'할 때 사용 | 글 수정 |
DELETE | 서버에서 데이터를 삭제할 때 사용 | 글 삭제 |
📥 HTTP 응답 코드
서버는 요청에 대해 **숫자로 된 상태 코드**를 보내줍니다. 이 코드만 봐도 요청이 성공했는지, 실패했는지 알 수 있어요.
상태 코드 | 의미 | 설명 |
---|---|---|
200 OK | 성공 | 요청한 작업이 잘 수행됨 |
301 Moved Permanently | 영구 이동 | 페이지 주소가 바뀜 |
400 Bad Request | 잘못된 요청 | 요청 문법 오류 등 |
401 Unauthorized | 인증 필요 | 로그인 필요 |
403 Forbidden | 접근 금지 | 권한 없음 |
404 Not Found | 찾을 수 없음 | 존재하지 않는 페이지 |
500 Internal Server Error | 서버 오류 | 서버에 문제가 있음 |
✉️ 예시 흐름
```http GET /index.html HTTP/1.1 Host: example.com
💡 개발자가 꼭 알아야 할 것
HTTP는 브라우저와 서버가 어떻게 대화하는지를 정한 약속
GET/POST/PUT/DELETE 같은 메서드로 서버에 요청
서버는 200, 404, 500 같은 숫자로 결과를 알려줌
웹 개발, API 개발 시 반드시 이해해야 하는 기본 지식!