나머지 건축적 제약

나머지는 2000 년 로이 필딩이 만든 표현적 국가 이전을 의미한다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다. 나머지는 낮은 수준에서 구현해야하는 방법에 대한 규칙을 적용하지 않습니다,그냥 높은 수준의 설계 지침을 넣어 자신의 구현을 생각하는 당신을 떠나.

마지막 고용에서,나는 2 년 동안 주요 통신 회사를 위해 편안한 아피스를 설계했다. 이 게시물에서는 표준 디자인 관행 외에도 내 생각을 공유 할 것입니다. 당신은 몇 가지 점에 나와 함께 동의하지 않을 수 있습니다,그것은 완벽하게 괜찮습니다. 나는 열린 마음으로 당신에게서 무엇이든을 토론하게 행복할 것이다.

의’로이 필딩’우리가 구축하고자하는 것을 취소 표준 설계 특정 물건 시작하자. 그런 다음 내 생각에 대해 논의 할 것이며,이는 당신이 당신의 편안한 아피스를 디자인하는 동안 더 미세한 점으로 향할 것입니다.

아키텍처 제약

나머지는 모든 웹 서비스를 만드는 6 가지 아키텍처 제약 조건을 정의합니다.

  1. 균일 인터페이스
  2. 클라이언트-서버
  3. 상태 비저장
  4. 캐시 가능
  5. 계층화된 시스템
  6. 요청 시 코드(선택 사항)

제약조건 이름 자체가 적용되는 경우,시스템 내부 리소스에 대한 제약조건 인터페이스를 결정해야 합니다. 시스템의 리소스에는 하나의 논리적 우리당만 있어야 하며 관련 데이터나 추가 데이터를 가져올 수 있는 방법을 제공해야 합니다. 항상 웹 페이지를 가진 자원을 동의어하는 것이 낫다.

모든 단일 리소스가 너무 커서는 안되며 각 리소스와 모든 리소스가 그 표현에 포함되어야합니다. 관련 될 때마다 리소스에는 관련 정보를 가져 오기 위해 상대적인 정보를 가리키는 링크가 포함되어야합니다.

또한 시스템 전체의 리소스 표현은 명명 규칙,링크 형식 또는 데이터 형식과 같은 특정 지침을 따라야 합니다.

모든 리소스는 다음과 같은 일반적인 접근 방식을 통해 액세스 할 수 있어야하며 일관된 접근 방식을 사용하여 유사하게 수정해야합니다.

개발자가 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정 사용자 지정

클라이언트–서버

이 제약 조건은 기본적으로 클라이언트 응용 프로그램과 서버 응용 프로그램이 서로 종속되지 않고 별도로 진화할 수 있어야 함을 의미합니다. 클라이언트는 리소스 만 알아야합니다. 오늘,이것은 웹 발달에 있는 표준 연습이다,그래서 공상 아무것도 당신 측에서 요구되지 않는다. 그것을 간단한 지키십시요.

서버와 클라이언트 간의 인터페이스가 변경되지 않는 한 독립적으로 교체 및 개발될 수도 있습니다.로이 필딩은 이 제약조건에 반영되어 있다. 모든 클라이언트-서버 상호 작용을 상태 비저장으로 만듭니다. 서버는 클라이언트가 만든 최신 요청에 대해 아무것도 저장하지 않습니다. 모든 요청을 새로운 것으로 취급 할 것입니다. 세션 없음,역사 없음.

클라이언트 응용 프로그램이 최종 사용자를 위한 상태 저장 응용 프로그램이어야 하는 경우,사용자가 한 번 로그인하고 그 이후에 다른 승인된 작업을 수행하는 경우 클라이언트의 각 요청에는 인증 및 권한 부여 세부 정보를 포함하여 요청을 처리하는 데 필요한 모든 정보가 포함되어야 합니다.

클라이언트 컨텍스트는 요청 간에 서버에 저장되지 않습니다. 클라이언트는 응용 프로그램의 상태를 관리할 책임이 있습니다.

캐시 가능

오늘날 세계에서 데이터와 응답의 캐싱은 적용 가능/가능한 모든 곳에서 매우 중요합니다. 당신이 여기 읽고있는 웹 페이지는 또한 웹 페이지의 캐시 된 버전입니다. 캐싱을 사용하면 클라이언트 쪽의 성능이 향상되고 부하가 줄어들어 서버의 확장성이 향상됩니다.

나머지 부분에서는 캐싱이 해당되는 경우 리소스에 적용되고 이러한 리소스는 캐시 가능하다고 선언해야 합니다. 캐싱은 서버 또는 클라이언트 측에서 구현할 수 있습니다.

잘 관리된 캐싱은 일부 클라이언트-서버 상호 작용을 부분적으로 또는 완전히 제거하여 확장성과 성능을 더욱 향상시킵니다.예를 들어,계층화된 시스템 아키텍처를 사용하여 서버에 데이터를 저장하고 서버에 요청을 인증할 수 있습니다. 클라이언트는 일반적으로 최종 서버에 직접 연결되어 있는지 또는 중간 서버에 연결되어 있는지 여부를 알 수 없습니다.

주문형 코드(선택 사항)

음,이 제약 조건은 선택 사항입니다. 대부분의 경우 리소스의 정적 표현을 다음과 같은 형태로 보냅니다. 그러나 필요할 때 응용 프로그램의 일부를 지원하기 위해return executable code를 자유롭게 사용할 수 있습니다. 그것은 허용된다.

위의 모든 제약 조건은 진정으로 편안한 아필을 구축하는 데 도움이되므로 따라야합니다. 아직도,때때로,당신은 하나 또는 두 개의 제약 조건을 위반 자신을 찾을 수 있습니다. “걱정 마세요,당신은 여전히 편안한 아페리티브를 만들고 있습니다-그러나”진정으로 편안한 것은 아닙니다.”

위의 모든 제약 조건은 웹(웹)과 가장 밀접한 관련이 있습니다. 웹 서비스를 사용하면 웹 페이지에 대해 수행하는 작업과 동일한 작업을 수행할 수 있습니다.

이 글이 도움이 되었나요?

아니오

답글 남기기

이메일 주소는 공개되지 않습니다.

More: