Web 이란 무엇인가?
REST
REST (Representational State Transfer: 자원의 상태 전달) - 네트워크 아키텍처
1. Clint, Server : 클라이언트와 서버가 서로 독립적으로 분리 되어 있어야 한다.
2. Stateless : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
3. Cache : 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다.
클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춘다.
4. 계층화 ( Layered System ) : 서버와 클라이언트 사이에, 방화벽, 게이트웨이, Proxy 등 다양한 계층 형태로 구성이 가능해야함, 이를 확장 할 수 있어야 한다.
5. 인터페이스 일관성 : 인터페이스의 일관성을 지키고, 아키텍처를 단순화시켜 작은 단위로 분리하여,클라이언트, 서버가 독립적으로 개선 될 수 있어야 한다.
6. Code on Demand (Optional) : 자바 애플릿, 자바 스크립트, 플래시 등 특정한 기능을 서버로 부터 클라이언트가 전달받아 코드를 실행 할 수 있어야 한다.
URI 설계 패턴
1. URI (Uniform Resource Identifier)
인터넷에서 특정 자원을 나타내는 주소 값. 해당 값은 유일하다. (응답은 달라 질 수 있다.)
요청 : https://www.foo.co.kr/resource/sample/1
응답: fastcampus.pdf, fastcampus.pdf.doc
2. URL ( Uniform Resource Locator)
인터넷 상에서의 자원, 특정 파일이 어디에 위치하는 지 식별하는 주소
요청 : https://www.foo.co.kr/fastcampus.pdf
URL 은 URI의 하위 개념입니다.
HTTP Protocol
- HTTP (Hyper Text Transfer Protocol) 로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜.
- 이름에는 하이퍼텍스트 전송용 프로토콜로 정의되어 있지만 실제로는 HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 다양한 컴퓨터에서 다룰 수 있는 것은 모두 전송할 수 있습니다.
- HTTP는 TCP 기반으로 한 REST의 특징을 모두 구현하고 있는 Web기반의 프로토콜
'Be Smart > Spring' 카테고리의 다른 글
스프링의 핵심 (0) | 2021.09.06 |
---|---|
Spring Boot (0) | 2021.09.06 |
Singleton Pattern (0) | 2021.08.20 |
디자인 패턴 (0) | 2021.08.19 |
POJO JAVA (0) | 2021.08.19 |
댓글