티스토리 뷰

RESTFUL 기반 웹 서비스


- SOAP 기반 웹 서비스의 문제점인 오버헤드발생, 메시지의 인코딩/디코딩의 어려움을 보완할 수 있는 REST(Representational State Transfer)기반의 웹 서비스로서, HTTP의 기본 기능만으로 원격 정보에 접근할 수 있다.

- 상호 연동을 위한 서비스를 등록하기 위한 저장소가 필요하지 않으며, 단순히 서버와 클라이언트로만 분리되어 있다. 따라서 리소스 접근을 위해 단순 URI로 표현하며, HTTP의 요청방식인 GET, POST, PUT, DELETE만으로 접근 할 수 있다.

 

 

 

컨테이너


- 서블릿과 JSP와 같은 웹서버 애플리케이션들은 동적 콘텐츠를 생성하는 웹 컴포넌트이다. 이러한 컴포넌트를 저장하는 저장소 역할, 메모리 로딩, 객체 생성 및 초기화 등 서블릿이 생명주기를 관리하고 JSP를 서블릿으로 변환하는 기능을 수행하는 프로그램이 컨테이너이다.

 

그림1. JSP 처리 과정

 

 

 

HTTP란?


- TCP/IP 4계층에서 애플리케이션 계층(Application Layer)에 해당하는 프로토콜로서, 전송 계층(Transport Layer)에서 TCP를 사용하여 웹 브라우저와 웹 서버 간에 통신하는 프로토콜이다.

 

 

 

HTTP의 특징


- 무연결(Connectionless): HTTP는 클라이언트와 서버간에 요청이 있을때마다 독립적으로 연결하여 통신하는 방식이다. 그래서 클라이언트와 서버의 요청 단위로 새로운 연결을 처리해야 하는 단점이 있다.

- 무상태(Stateless): 요청이 있을때마다 독립적인 트랜잭션으로 취급하기에 이전 연결에서 했던 작업내용을 다음 요청에서 그대로 사용할 수 없다. 즉, 상태정보가 유지되지 않는 특성을 무상태(Stateless)라 한다.

- 요청, 응답(Request, Response): 요청정보와 응답정보를 주고받으며 통신이 이루어지는 방식을 요청&응답 또는 request-reply라고 한다.

 

 

 

HTTP의 요청정보


- HTTP 요청정보는 웹 클라이언트가 웹서버에 서비스를 요청하면 HTTP에 의하여 자동으로 만들어져 서비스를 요청받은 웹서버에 전달

 

 

 

HTTP의 요청방식


- GET방식: 브라우저에서 캐시(cache)가 가능하며 클라이언트가 서버로 전송하는 문자열이 있을 때는 요청정보 헤더의 요청 줄에 포함되는 URL 뒤에 ? 기호와 함께 추가되어 전달되기에 가장 단순한 요청방식으로 서버에 빠른 속도로 요청할 때 사용한다.

- POST방식: 데이터가 HTTP 요청정보의 몸체에 포함되어 전달되고 웹 클라이언트 측에서 보내는 데이터를 인코딩하고 서버 측에서 디코딩 해야 하므로 GET 방식보다 상대적으로 처리속도가 느리다. 주로 서버 측의 정보를 새로 생성하는 작업에 사용된다.

- PUT방식: 파일 업로드를 할때 이용한다. 일반적으로 서버와 리소스를 새로 생성할 때(CREATE OR INSERT)는 POST방식으로 요청하고 서버의 리소스를 수정할 때(UPDATE)는 PUT방식으로 구분하여 요청한다.

 

 

 

HTTP의 응답방식


- 200 OK: 클라이언트의 요청을 성공적으로 처리했을 때

- 400 Bad Request: 클라이언트의 요청에 문법적인 오류 등 잘못된 요청일 때

- 401 Unauthorized: 인증 오류(Unauthorized)로서 클라이언트가 잘못된 인증 정보를 aUTHORIZATION 헤더에 넣었을 때

- 403 Forbidden: 사용자 허가 모드 오류(Forbidden)로서 클라이언트의 인증 정보에 상관없이 페이지에 대한 접근 거부 나타낼 때

- 404 Not Found: 클라이언트가 요청한 문서가 존재하지 않을 때

- 405 Method Not Allowed: 클라이언트가 요청한 서비스 요청방식을 웹서버에서 지원하지 않을 때

- 500 Internal Server Error: 서버 프로그램이 실행을 멈추었거나 올바르지 않은 응답 헤더 정보가 설정되었을 때

 

 

 

HTTP의 응답정보 헤더


- Cache-Control: 클라이언트가 요청할 때마다 페이지의 내용이 자주 바뀌지 않는 정적인 문서라면 빠른 속도 지원이 가능하도록 캐시를 사용하는 것이 좋고, 요청할때마다 페이지의 내용이 자주 바뀐다면 캐시를 사용하지 않는 것이 좋다.

'JSP' 카테고리의 다른 글

Servlet ) 2. Servlet 요청정보와 응답정보  (0) 2021.04.12
Servlet ) 1. Servlet 구현 및 실행  (0) 2021.04.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
글 보관함