웹개발 기본상식
HTTP(HyperText Transfer Protocol)**
Irene1988
2025. 6. 18. 22:39
✅ 1. HTTP란?
**HTTP(HyperText Transfer Protocol)**는
**웹 브라우저(클라이언트)**와 웹 서버가
**텍스트, 이미지, HTML, JSON 등의 데이터를 주고받는 규약(약속된 형식)**
즉, 웹에서 클라이언트와 서버 간의 통신을 위한 약속된 방식
✅ 2. HTTP의 작동 원리 (요청 & 응답 구조)
HTTP는 기본적으로 요청(Request) → 응답(Response) 구조로 작동한다.
[브라우저] → 요청 → [웹 서버]
[웹 서버] → 응답 → [브라우저]
✔ 예시:
- 네가 브라우저에 https://naver.com을 입력하면,
- 브라우저가 서버에 "네이버 홈페이지 주세요" (요청)
- 서버가 HTML, CSS, JS 등을 돌려줌 (응답)
✅ 3. HTTP 메서드 종류 (Request 방식)
HTTP는 어떤 행동을 할지를 **"메서드"**로 표현해. 주로 쓰는 건 아래 4가지:
메서드 | 설명 |
GET | 데이터를 조회 (ex: 페이지 열기) |
POST | 데이터를 서버에 전송 (ex: 로그인, 회원가입) |
PUT | 데이터를 전체 수정 |
DELETE | 데이터를 삭제 |
🔸 GET은 URL 뒤에 데이터가 붙고, POST는 body에 붙는다 (보안이나 양 차이 있음)
✅ 4. HTTP 응답 상태 코드 (Response 코드)
서버가 요청에 대해 어떻게 응답했는지를 숫자로 알려준다.
상태 코드 | 의미 | 설명 |
200 OK | 성공 | 요청 성공 |
301, 302 | 리다이렉트 | 페이지 이동 |
400 Bad Request | 잘못된 요청 | 요청 문법이 틀림 |
401 Unauthorized | 인증 필요 | 로그인 안 된 상태 |
403 Forbidden | 접근 금지 | 권한 없음 |
404 Not Found | 페이지 없음 | URL이 잘못됨 |
500 Internal Server Error | 서버 에러 | 서버에 문제 발생 |
✅ 5. HTTP와 HTTPS 차이
항목 | HTTP | HTTPS |
보안 | 없음 | 있음(암호화됨) |
포트 | 80 | 443 |
인증서 | 없음 | SSL 인증서 사용 |
사용 예 | 간단한 테스트 서버 | 실서비스, 로그인/결제 |
🔒 HTTPS는 데이터가 암호화되어 중간에 도청·변조 위험이 줄어듦.
✅ 6. HTTP는 무상태 프로토콜 (Stateless)
- 서버는 요청 간의 상태를 기억하지 않음.
- 그래서 로그인 상태 유지 등을 위해 쿠키(cookie), 세션(session), 또는 JWT 같은 걸 사용함.
✅ 7. HTTP의 발전: HTTP/1.1 → HTTP/2 → HTTP/3
버전 | 특징 |
HTTP/1.1 | 기본 구조. 연결당 하나의 요청만 가능 |
HTTP/2 | 다중 요청 병렬 처리. 속도 개선 |
HTTP/3 | UDP 기반. 지연시간 감소, 더 빠름 |
✅ 8. 실제 개발 시 HTTP가 어떻게 쓰이는가?
프론트엔드에서:
fetch('/api/user', {
method: 'GET'
});
백엔드(Spring Boot 예시):
@GetMapping("/api/user")
public User getUser() {
return userService.getUser();
}
✅ 9. 핵심 요약 정리
키워드 | 설명 |
클라이언트 ↔ 서버 | 통신 구조 |
Request / Response | 요청과 응답 |
GET / POST | 주요 메서드 |
200 / 404 / 500 | 상태 코드 |
Stateless | 상태를 기억하지 않음 |
HTTPS | 보안이 강화된 HTTP |