웹 인터페이스의 HTTP 상태 코드와 비즈니스 상태 코드를 올바르게 사용하는 방법은 무엇입니까?

웹 인터페이스를 디자인하고 개발할 때 HTTP 상태 코드와 비즈니스 상태 코드라는 두 가지 개념을 다루는 것은 불가피합니다. 많은 학생들이 이 두 개념이나 차이점에 대해 주의를 기울이지 않고 혼동하고 있을 수도 있으니, 다음으로 두 개념의 정의와 차이점, 사용법에 대해 자세히 설명하겠습니다.

HTTP 상태 코드

HTTP 상태 코드는 HTTP 프로토콜에 의해 정의되며 요청에 대한 웹 서버의 응답 상태를 나타내는 데 사용됩니다. 각 상태 코드에는 특정한 의미가 있습니다. 개발자가 HTTP 상태 코드를 사용자 정의할 수 있지만 그렇게 하면 향후 HTTP 사양과 혼동이나 충돌이 발생할 수 있으므로 권장되지 않습니다. HTTP 상태 코드의 값은 3자리 숫자로, 첫 번째 숫자는 응답 범주를 나타내며 현재 다음과 같은 5개 범주가 있습니다.

  • 1xx: 요청이 수신되었으며 추가 처리가 필요함을 나타냅니다.
  • 2xx: 요청이 서버에서 성공적으로 수신되고 이해되었으며 수락되었음을 나타냅니다.
  • 3xx: 리디렉션, 요청을 완료하려면 클라이언트의 추가 작업이 필요합니다.
  • 4xx: 요청에 구문 오류가 있거나 완료할 수 없음을 나타내는 클라이언트 오류입니다.
  • 5xx: 서버 오류입니다. 요청을 처리하는 동안 서버에 오류가 발생했습니다.

HTTP 상태 코드는 요청 처리를 나타내는 표준 규칙입니다. 클라이언트는 이러한 상태 코드를 받은 후 다양한 상태 코드에 따라 해당 처리 조치를 취할 수 있습니다. 보다 구체적인 상태 정보를 표현해야 하는 경우 일반적인 접근 방식은 HTTP 상태 코드를 사용자 정의하는 대신 HTTP 응답 본문에 비즈니스 상태 코드를 반환하는 것입니다. 비즈니스 상태 코드는 애플리케이션이나 서비스 자체에서 정의되며 사용자가 존재하지 않거나 제품 재고가 부족하거나 결제 실패 등을 나타내는 등 실제 비즈니스 요구에 따라 정의될 수 있습니다.

비즈니스 상태 코드

비즈니스 상태 코드는 특정 비즈니스 로직의 상태를 반영하기 위해 애플리케이션 자체에서 HTTP 상태 코드 위에 정의됩니다. 이러한 상태 코드는 다양한 작업 및 조건에 대해 보다 자세하고 구체적인 정보를 제공할 수 있으므로 고객은 비즈니스 프로세스를 더 잘 이해하고 처리할 수 있으며 다양한 상태 코드에 따라 해당 처리 조치를 취할 수 있습니다.

비즈니스 상태 코드는 일반적으로 응답 데이터(응답 본문)에 정의되어 다른 응답 데이터와 함께 클라이언트에 반환됩니다. 로그인 인터페이스를 예로 들면, 로그인 성공 후 HTTP 상태 코드 200 및 비즈니스 상태 코드 1로 표시됩니다(다른 값도 합의 가능). 응답 데이터 형식은 다음과 같습니다.

 {"code":1, "data":null,"msg":""}

계정이나 비밀번호가 올바르지 않은 경우 HTTP 상태 코드 200, 비즈니스 상태 코드 1001을 사용하세요.(비즈니스 상태 코드는 본인이나 팀의 전반적인 상황에 따라 결정될 수 있습니다.) 응답 데이터 형식은 다음과 같습니다.

 {"code":1001, "data":null,"msg":"账号或密码错误"}

비즈니스 상태 코드는 특정 애플리케이션의 요구와 상황에 따라 정의되어야 하며, 상태 코드의 값은 비즈니스 로직 및 작업 유형에 따라 사용자 정의될 수 있습니다. 또한 동일한 애플리케이션에 대해 비즈니스 상태 코드 유형은 정수 또는 문자열을 균일하게 사용하여 일관성이 있어야 하며, 정수를 균일하게 사용하는 것이 좋습니다.

요약

HTTP 상태 코드는 웹 서버의 요청 처리 상태를 나타내는 데 사용되며, 이는 HTTP 프로토콜에서 규정한 표준 표현 방법입니다. 비즈니스 상태 코드는 애플리케이션의 특정 비즈니스 로직 요구 사항을 충족하고 보다 구체적이고 세분화된 응답 상태를 제공하기 위한 것입니다. 인터페이스를 디자인할 때 상황에 따라 HTTP 상태 코드와 비즈니스 상태 코드를 사용하여 명확하고 일관되며 이해하기 쉬운 인터페이스 응답을 제공하는 것을 고려해야 합니다.

おすすめ

転載: blog.csdn.net/luduoyuan/article/details/132794323