1. Request (요청)
Request는 클라이언트가 웹 서버에 보내는 HTTP 요청을 의미합니다. 사용자가 웹 애플리케이션의 특정 자원(페이지, API 엔드포인트 등)에 접근하려고 할 때 서버에 요청을 보내는 과정입니다. 이 요청은 서버에서 클라이언트에게 응답을 생성하고 반환하는 데 필요한 정보를 제공합니다.
주요 특징
- HTTP 메서드: 요청은 HTTP 메서드를 사용하여 특정 작업을 지시합니다. 주요 HTTP 메서드에는
GET
,POST
,PUT
,DELETE
,PATCH
등이 있습니다. - GET: 서버에서 정보를 가져옵니다. URL을 통해 데이터를 조회합니다.
- POST: 서버에 데이터를 전송합니다. 주로 폼 제출이나 API 호출 시 사용됩니다.
- PUT: 서버의 리소스를 업데이트합니다.
- DELETE: 서버의 리소스를 삭제합니다.
- PATCH: 서버의 리소스를 부분적으로 업데이트합니다.
- 헤더(Header): 요청에는 메타데이터를 포함하는 HTTP 헤더가 포함됩니다. 헤더는 요청의 처리에 필요한 추가 정보를 제공합니다(예:
Content-Type
,User-Agent
,Authorization
등).
- 파라미터와 본문:
- 쿼리 파라미터: URL에 포함된 파라미터로,
?key=value
형식으로 전달됩니다. 주로GET
요청에서 사용됩니다. - 본문(Body): 주로
POST
,PUT
,PATCH
요청에서 사용되며, 요청의 본문에 데이터를 포함합니다(예: 폼 데이터, JSON, XML).
- Request 객체: 웹 프레임워크(예: Spring, Express.js 등)에서는 클라이언트의 요청을 처리하기 위해
Request
객체를 사용합니다. 이 객체는 요청의 세부 정보를 캡슐화하여 제공하며, 컨트롤러나 핸들러에서 이 객체를 사용하여 요청을 처리합니다.
예시
GET /profile?userId=123 HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
위 요청은
/profile
경로로 userId=123
파라미터를 포함하여 GET
요청을 보내고 있습니다.2. Session (세션)
Session은 클라이언트와 서버 간의 상태를 유지하기 위한 방법으로, 사용자의 상태 정보를 서버 측에 저장하고, 여러 요청에 걸쳐 사용자 정보를 관리합니다. 웹 애플리케이션은 HTTP 프로토콜의 상태 비저장 특성으로 인해 세션을 사용하여 사용자 상태를 유지합니다.
주요 특징
- 세션 ID: 서버는 클라이언트를 식별하기 위해 세션 ID를 생성합니다. 이 ID는 클라이언트와 서버 간의 상태를 추적하는 데 사용됩니다. 일반적으로 쿠키를 통해 클라이언트와 서버 간에 세션 ID를 전달합니다.
- 서버 측 저장: 세션 데이터는 서버 측에 저장됩니다. 이는 사용자의 인증 정보, 장바구니 내용, 사용자 설정 등 클라이언트의 상태와 관련된 데이터를 포함합니다.
- 세션 만료: 세션은 일정 시간 동안 비활성 상태가 지속되면 만료됩니다. 또한 사용자가 로그아웃하거나 세션을 명시적으로 종료할 수도 있습니다. 세션 만료는 서버의 자원 관리를 위한 중요한 기능입니다.
- 세션 관리: 세션을 통해 사용자는 로그인 상태를 유지하고, 여러 페이지 요청 간에 사용자 정보를 공유할 수 있습니다. 웹 프레임워크는 세션을 관리하는 다양한 도구와 API를 제공합니다.
예시
웹 애플리케이션에서 세션을 사용하여 사용자의 로그인 상태를 관리하는 예시:
// 로그인 시 세션 생성
HttpSession session = request.getSession();
session.setAttribute("user", loggedInUser);
// 다른 요청에서 세션 정보를 사용
User user = (User) session.getAttribute("user");
if (user != null) {
// 사용자 정보 사용
}
이 예시에서는 사용자가 로그인하면 세션에 사용자 정보를 저장하고, 이후 요청에서 세션을 통해 로그인 상태를 확인합니다.
요약
- Request: 클라이언트가 서버에 보내는 HTTP 요청으로, 요청의 메서드, 헤더, 파라미터, 본문 등을 포함합니다. 서버는 이 요청을 처리하여 적절한 응답을 생성합니다.
- Session: 서버와 클라이언트 간의 상태를 유지하기 위한 메커니즘으로, 서버 측에 상태 정보를 저장하고 세션 ID를 통해 상태를 추적합니다. 이는 사용자의 로그인 상태 유지, 데이터 저장 등을 지원합니다.
두 개념 모두 웹 애플리케이션의 사용자 경험을 향상시키고, 상태 관리 및 데이터 처리에 중요한 역할을 합니다.
Share article