1. 인터넷과 HTTP의 기원
인터넷의 시초는 **1960~70년대 미국 국방부에서 개발한 아르파넷(ARPANET)**이다. 이는 군사적 목적과 컴퓨터 간 통신을 위해 고안되었고, 결국 우리가 오늘날 사용하는 인터넷의 뿌리가 되었다.
이후, 인터넷에서 정보를 주고받기 위해 어떤 규칙이 필요해졌고, 1989년 팀 버너스 리에 의해 **HTTP(HyperText Transfer Protocol)**라는 규약이 등장했다. 이 프로토콜은 단순한 글자 전달이 아닌, 문서 간의 연결과 전송을 정의하는 약속이었다.
2. HTTP 통신이란?
**HTTP(HyperText Transfer Protocol)**는 하이퍼텍스트(링크를 통해 다른 문서로 이동 가능한 문서)를 서버와 클라이언트 사이에서 주고받는 규칙이다.
- 클라이언트(Client): 요청을 보내는 쪽 (브라우저, 모바일 앱 등)
- 서버(Server): 요청을 받아 처리하고 응답하는 쪽 (Spring Boot 앱이 동작하는 곳)
이 둘 사이에서 일어나는 모든 흐름이 HTTP 통신이다.
3. 요청과 응답의 구성
HTTP 통신은 크게 **요청(Request)**과 **응답(Response)**으로 나뉜다.
📥 요청(Request)
클라이언트 → 서버로 보내는 메시지
- URL: 어디에 요청을 보낼지 (주소)
- Method: 어떤 요청인지 (GET, POST 등)
- Header: 브라우저 종류, 인증 정보 등 부가 정보
- Body: 전송할 데이터 (주로 POST에서 사용)
📤 응답(Response)
서버 → 클라이언트로 돌아오는 메시지
- Status Code: 요청 처리 결과 (200, 404 등)
- Header: 응답의 부가 정보 (데이터 형식 등)
- Body: 실제 데이터 (HTML, JSON 등)
4. 인터넷 기본 개념 (HTTP를 이해하는 데 필수)
- IP 주소: 각 컴퓨터의 고유한 주소 (ex. 192.168.0.1)
- DNS: 도메인 이름을 IP로 변환 (ex. google.com → 172.217.161.78)
- PORT: 하나의 IP에서 여러 앱을 구분하는 단위 (ex. 8080)
- localhost = 127.0.0.1: 자기 자신의 IP 주소
- HTTP 기본 포트: 80
- HTTPS 기본 포트: 443
- Tomcat 기본 포트: 8080 (Spring Boot 내장 서버)
5. HTTP 메서드(Method)
요청이 무엇을 하려는지를 정의하는 키워드. 대표적인 것들은 다음과 같다:
- GET: 데이터 조회 (ex. 게시글 목록 보기)
- POST: 데이터 생성 (ex. 회원 가입)
- PUT: 데이터 수정 (ex. 글 수정)
- DELETE: 데이터 삭제 (ex. 글 삭제)
✏ 예시 (게시판 URL)
plaintext
복사편집
GET /board → 게시글 전체 조회 POST /board → 새 게시글 등록 PUT /board/1 → 1번 글 수정 DELETE /board/1 → 1번 글 삭제
6. HTTP 상태 코드(Status Code)
클라이언트의 요청에 대해 서버가 어떻게 응답했는지를 숫자로 알려준다. 가장 자주 쓰는 코드만 정리해 보면:
- 200 OK: 정상 처리 완료
- 201 Created: 생성 완료
- 400 Bad Request: 잘못된 요청 (ex. 주소 오류)
- 401 Unauthorized: 인증 필요 (로그인 안 됨)
- 403 Forbidden: 권한 없음 (접근 제한)
- 404 Not Found: 요청한 자원 없음
- 500 Internal Server Error: 서버 내부 에러
'웹개발 > SpringBoot' 카테고리의 다른 글
| Jpa Repository (0) | 2025.05.22 |
|---|---|
| ORM (Object-Relational Mapping) (4) | 2025.05.21 |
| SpringBoot 활용 (0) | 2025.05.20 |
| IoC(제어의 역전),DI(의존성 주입) (1) | 2025.05.19 |
| 서블릿(Servlet)vs 스프링부트(SpringBoot) (1) | 2025.05.18 |