0. URI (Uniform Resource Identifier)
자원을 식별하는 통합 규칙
→ 인터넷 상의 모든 자원을 고유하게 식별하기 위한 표현 방식
ex) https://www.example.com/images/logo.png
0. URL (Uniform Resource Locator)
자원이 "어디에 있는지(위치)"를 나타내는 주소
→ 우리가 브라우저 주소창에 입력하는 것이 바로 URL이다.
ex) https://www.example.com:443/users?id=10#section1
- https: 프로토콜
- www.example.com: 호스트
- 443: 포트 (생략 가능), 일반적으로 생략, 생략시 http는 80, https는 443
- /users: 경로
- ?id=10: 쿼리 파라미터
- #section1: 북마크(앵커)
- 일반적으로 생략, 생략시 http는 80, https는 443
URL만 잘 기억하자
1. HTTP(HyperText Transfer Protocol)
HTTP는 웹에서 클라이언트(브라우저)와 서버 간 요청-응답 통신을 위한 텍스트 기반의 프로토콜이다.
→ 사용자가 웹사이트에 접속할 때 브라우저가 HTTP 요청을 보내고, 서버가 이에 응답하는 구조.
→ HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
주요 특징
- 비연결성(Connectionless): 요청 후 응답이 끝나면 연결이 끊김
- 무상태성(Stateless): 이전 요청 정보를 기억하지 않음
- 단순함
- 확장 가능: 쿠키, 세션, HTTPS 등 다양한 방식으로 기능 확장 가능
2. HTTP 요청과 응답
클라이언트 (브라우저) → 요청(Request) 서버 → 응답(Response)
요청 메시지 구조
요청라인: 요청 방식(GET, POST 등), 요청 URL, HTTP 버전 헤더: 브라우저 정보, 쿠키 등 본문(Body): 데이터 전송 (POST에서 주로 사용)
응답 메시지 구조
상태라인: HTTP 버전, 상태 코드 (200, 404 등) 헤더: 서버 정보, 응답 형식 본문(Body): 실제 콘텐츠 (HTML, JSON 등)
3. HTTP 주요 메서드
메서드설명
| GET |
서버에서 데이터 조회 (ex. 게시글 목록 가져오기) |
| POST |
서버에 데이터 생성 요청 (ex. 회원가입) |
| PUT |
전체 데이터 수정 |
| PATCH |
일부 데이터 수정 |
| DELETE |
데이터 삭제 요청 |
4. HTTP의 무상태성 (Stateless)
HTTP는 Stateless, 즉 서버가 클라이언트의 이전 요청 정보를 저장하지 않는다!
장점
- 서버 확장에 유리 (사용자 상태 저장 필요 없음 → 가볍고 빠름)
-
서버확장에 유리함
단점
- 로그인 상태 유지, 장바구니 등 사용자 상태 관리가 필요한 경우 별도 처리가 필요함
→ 이를 보완하는 기술: 쿠키, 세션, 토큰(JWT) 등