1. Web
1-1. Web의 기원과 정의 : 웹(World Wide Web, WWW)은 1989년 유럽입자물리학연구소(CERN)의 컴퓨터 공학자 팀 버너스리(Tim Berners-Lee)에 의해 처음 제안되고 탄생했습니다.
a. 탄생 배경 및 계기
- 연구 자원 및 정보 공유의 한계 : 당시 CERN에는 전 세계 수천 명의 과학자들이 방문해 연구를 진행했지만, 서로 다른 컴퓨터 OS와 시스템을 사용하고 있어 연구 데이터를 공유하기가 매우 복잡하고 불편했습니다.
- 정보 파편화 문제 : 각기 다른 컴퓨터에 저장된 문서와 데이터를 한곳에서 쉽게 찾아보고 연결할 수 있는 공통된 시스템의 필요성이 제기되었습니다.
b. Web의 정의 : 인터넷 상에서 데이터를 주고 받는 공통된 약속과 구조입니다.
1-2. Web Service의 개념
- 웹 서비스는(Web Service)는 인터넷 표준 프로토콜을 기반으로 웹을 통해 제공되는 다양한 서비스 및 기능을 의미합니다.
1-3. 웹 서비스 흐름 정리
a. 사용자 요청(Request)
- 사용자가 웹 브라우저(클라이언트)를 통해 특정 행동(주소입력, 버튼클릭, 로그인 등)을 수행합니다.
- 브라우저는 사용자의 요청을 표준 통신 규약인 HTTP/HTTPS 메시지 형태로 변환하여 인터넷을 통해 해당 서버로 전달합니다.
b. 서버 및 데이터 처리(Processing)
- 웹 서버가 클라이언트로부터 전송된 HTTP 요청 메시지를 수신합니다.
- 서버는 요청된 기능이나 데이터를 확인하고 필요한 로직(비즈니스 로직)을 수행합니다.
- 데이터의 조회, 저장, 수정이 필요한 경우 데이터베이스에 접근하여 필요한 작업을 처리하고 결과를 전달받습니다.
c. 응답 반환(Response)
- 서버는 처리 결과(HTML문서, JSON 데이터, 이미지 등)를 HTTP 응답 메시지 형태로 구성합니다.
- 응답 메시지에는 요청의 성공/실패 여부를 나타내는 상태 코드(예: 200 OK, 404 Not Found)와 데이터 본문(Body)이 포함됩니다.
- 작성된 응답 메시지를 클라이언트(브라우저)로 전송합니다.
d. 클라이언트 화면 렌더링(Rendering)
- 웹 브라우저는 서버로부터 받은 HTTP 응답 데이터를 해석(파싱)합니다.
- HTML, CSS, JavaScript 등으로 전달받은 데이터와 화면 요소(UI)를 브라우저 화면에 시각적으로 그려내어 사용자에게 최종 결과를 보여줍니다.
h. API(Application Programming Interface) : 프로그램이 다른 프로그램의 기능을 사용하기 위한 약속된 인터페이스
2. HTTP
2-1. Client - Server 모델 정리
- 특징
- 역할이 명확히 분리됩니다.
- 요청과 응답의 방향이 정해져 있습니다. (클라이언트 → 서버)
- 여러 클라이언트가 하나의 서버를 사용할 수 있습니다.
- 서버는 항상 대기하며 요청을 처리합니다.
- 서버에서 데이터와 기능을 중앙에서 관리합니다.
- 역할은 통신 상황에 따라 달라질 수 있습니다.
2-2. HTTP란?
- HTTP(HyperText Transfer Protocol) : 클라이언트와 서버가 요청과 응답 메시지를 어떻게 주고 받을지 정한 통신 규칙
2-3. HTTP 메시지의 구성
- 이 메시지는 요청인지, 응답인지
- 무엇을 요청하는지 (메서드)
- 요청이 성공했는지 실패했는지 (상태 코드)
- 데이터는 어떤 형식인지 (헤더, 본문)
2-4. Curl을 활용한 HTTP 요청 예제
POST /users/login HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 52
{
"email":"alex@example.com",
"password":"1234"
}