>  기사  >  백엔드 개발  >  웹사이트 아키텍처는 노백엔드 솔루션을 채택합니다.

웹사이트 아키텍처는 노백엔드 솔루션을 채택합니다.

WBOY
WBOY원래의
2016-07-25 08:42:42857검색
웹 사이트 아키텍처에 nobackend 솔루션 사용
현재 애플리케이션 개발 모델은 백엔드 구축에 너무 중점을 두고 있습니다. 실제로 우리는 수년 동안 백엔드 개발을 단순화하기 위해 노력해 왔습니다. UX에 더욱 중점을 둔 현 환경에 맞는 솔루션을 제안합니다 - noBackend, 우선PHP 교육프론트엔드 개발.
즉, 웹, iOS, 안드로이드는 단지 프레젠테이션 레이어일 뿐이고 지속성 작업은 모두 API에 맡겨져 있습니다.
지금은 템플릿 렌더링을 무시하고 이를 프런트 엔드에 배치할 수 있습니다.
현재 어려움을 겪고 있는 부분은 웹 세션과 앱 토큰 문제입니다.
이 API는 토큰으로 검증할 뿐만 아니라 웹 요청 시 사용자 세션도 갖습니다.
사용자 세션이 있는 경우 토큰을 확인할 필요가 없습니다.
이 접근 방식에 제한이나 단점이 있나요?
백엔드 PHP..


답변 내용:
물론 가능합니다. 저는 성공한 사례가 많고 업계에도 많은 사례가 있어야 합니다. 비록 일부는 기만적이며 일부는 그냥 그런 것처럼 보이지만 그렇지 않습니다.
그래도 수석 설계자가 있는지 여부에 따라 다릅니다. 정말 돈이 많다면 이 아키텍처의 타당성을 증명하기 위해 .NET을 사용해도 괜찮습니다. (PHP 안돼 미안해)
토큰이나 세션과 같은 문제로 정말 어려움을 겪고 있다면 이는 이 아키텍처를 처리할 능력이 없거나, 플레이해 본 적이 없고 그것이 무엇인지 모르기 때문일 것입니다. 간단히 말해서, 대답은 '예'입니다. 나는 당신이 말하는 nobackend가 PHP 및 JSP와 같은 기술을 채택하고 싶지 않은 전통적인 아키텍처를 의미한다는 것을 이해합니다. 그러한 종류의 아키텍처는 세션에 많은 사용자 비즈니스 상태를 넣고 서버 측에 로직을 작성합니다. 페이지를 업데이트하거나 백엔드 서비스를 운영합니다(예: 데이터베이스 업데이트).
제 개인적인 경험에 따르면, 백엔드 API는 실제로 매우 일반적인 아키텍처입니다.
더 문제가 되는 부분(문제 설명에서 볼 수 있듯이)은 보안 측면입니다.
네이티브 클라이언트의 경우 oauth 암시적 부여 유형을 고려할 수 있습니다. 즉, 네이티브 APP가 더 안전한 것으로 간주되므로 토큰이 클라이언트에 직접 배치됩니다.
웹의 경우 클라이언트에 직접 토큰을 넣는 것이 더 위험하지만 기존 방법(oauth 인증 코드 부여 유형 포함)에서는 세션에 토큰을 넣어야 합니다.
실제로 이 문제를 해결하는 방법이 있습니다. 하지만 먼저 스스로에게 물어보는 것이 좋습니다. 정말로 세션이 없는 것을 원하는가? 실제로 세션을 완전히 제거하는 것은 어렵습니다. 전체 시스템 아키텍처에 관한 한 프로그래밍 비전에서는 이를 사용하지 않습니다. . 합리적으로 사용하면 문제가 없으며 근본주의에 빠지지 마십시오. 세션에 토큰만 배치하고 서버가 충돌하면 애플리케이션이 잘 처리하고 프런트 엔드 비즈니스 상태가 지속될 수 있다고 가정하면 사용자에게 다시 로그인하고 이전 페이지로 돌아가도록 요청하는 것에 지나지 않습니다. 계속하려면. 예를 들어, 온라인 쇼핑몰에서는 사용자가 장바구니에 물건을 담았는데 백엔드가 충돌하는 한, 다시 로그인하는 것 외에는 아무것도 아니며 작업을 계속할 수 있습니다. 이는 대략적인 설명일 뿐이며, 구체적인 세부 사항은 비즈니스 요구에 따라 결정되지만, 무슨 뜻인지는 이해하실 수 있을 것입니다. 언어에 관계없이 Lift, State, Scaling 게시물을 읽을 수 있습니다. 프런트 엔드에서 수행해야 할 많은 작업을 위한 성숙한 도구가 없기 때문에 스스로 많은 바퀴를 만들어야 할 수도 있으며 이로 인해 궁극적으로 비즈니스 속도가 느려질 수 있습니다 www.itxdl.cn. 쉽게 말하면
 1. 백엔드는 로그인 인증을 위해 Rest api와 /verify를 제공하며 이후 작업에는 인증 정보가 필요합니다
 2. 프런트 엔드는 ember/angular를 통해 웹앱으로 만들고 나머지 API는 ajax를 사용하여 소모합니다. 실제로는 쿠키를 사용하지 않고 매번 로그인만 하면 됩니다. 웹앱
3. 보안이 필요하다면 https로 가세요. 개인적으로 쿠키를 피할 수 있다면 js api를 직접 사용하는 것을 피할 수 있다고 생각합니다. 인증 문제는 해결하기 어렵습니다. 브라우저에서는 암시적 인증만 사용할 수 있지만 대부분의 서비스는 이를 지원하지 않습니다. . . 백엔드 솔루션이 없습니까? 이전에 수행된 적이 있습니까? 내 기억에는 꽤 많은 경우가 있다.
백엔드가 없다고 해서 백엔드가 없다는 뜻은 아닙니다. API 구현도 백엔드와 같은 기술 아닌가요? 지금은 기본적으로 개발에 어려움이 없을 것입니다. 질문자의 문제는 서버 토큰과 웹 세션의 차이를 인식하지 못하는 것일 수 있습니다. 사실 괜찮습니다. 인터페이스 서버와의 통신은 토큰이어야 하며, 웹측 세션은 서버 접근 권한을 먼저 확인한 후 웹측에서 생성해야 합니다.


과정을 살펴보겠습니다
사용자 로그인 예시
 1. 사용자가 로그인 후 API 서버에 인증 정보를 보냅니다
 2. 서버가 OK를 확인하고, 확인이 통과되었음을 나타내는 토큰을 반환합니다.
3. 웹 측에서 로그인 세션을 생성하여 현재 로그인 상태에서 얻은 토큰을 기록합니다
 4. 로그인 완료, 신청 페이지로 이동
위 과정을 마친 후, 사용자는 자신의 쿠폰 정보를 확인해야 합니다
 1. 로그인 시 웹세션에 저장된 토큰과 사용자명으로 쿠폰 인터페이스
를 호출합니다.  2. 반품쿠폰 안내
이 과정에서 서버는 2가지 일을 했습니다
 1. 토큰의 적법성 확인(존재, 만료, 출처 등)
2. 합법적인 경우 서비스에 전화하면 쿠폰 정보가 반환됩니다. 그렇지 않으면 오류가 보고됩니다.
여기서 세션은 웹사이드 프리젠테이션 레이어에서 사용되며 토큰은 인터페이스 서버의 세션임을 알 수 있습니다.
참고: www.itxdl.cn 웹사이트에는 noBackend 모드에서 개발을 시작하는 데 도움이 되는 일련의 백엔드 솔루션이 나열되어 있습니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.