양식 제출이 잘못된 POST / 리디렉션 / GET?


11

웹 개발 분야에서 양식 제출의 필드가 유효하지 않은 경우 POST / 리디렉션 / GET 을 수행하는 것이 좋습니다 .

일반적으로이 이벤트에서는 민감한 트랜잭션이 발생하지 않습니다. 그럼에도 불구하고 POST / Redirect / GET 패턴을 이용하는 것이 여전히 좋은 방법이라는 주장을 할 수 있습니까?

답변:


10

REST 관점에서 웹 대화는 다음과 같아야합니다.

GET / 예

200 OK-빈 양식 HTML 포함

사용자가 양식을 작성합니다

POST / 예

formfield1 = 확인

formfield2 = 나쁜

400 잘못된 요청-오류가있는 채워진 양식 HTML을 포함합니다.

사용자는 양식 제출과 관련된 문제를 식별하고 수정합니다.

POST / 예

formfield1 = 확인

formfield2 = 고정

201 CREATED-성공 메시지와 링크가있는 HTML (REST 클라이언트의 Location 헤더) 또는 200 OK 및 204 NO CONTENT가 허용되지 않습니다.

리디렉션을 도입 할 필요가 없으며 그렇게하면 대화의 의미가 깨질 수 있습니다.


1
예, REST 또는 일반적인 HTTP 상태 코드를 잊어 버린 방법은 무엇입니까? 나는이 질문을 할 때 뇌 방귀를 앓았다. 감사!
괜찮은 Dabbler

1
그러나 PRG 패턴의 방향 전환은 햄스터 사용자가 F5를 으깨는 것을 막고 "양식을 다시 제출할 것"을 무시하는 것보다 "대화의 의미"를 유지하는 것이 덜 중요하다는 인정으로 인해 발생합니다. 그들의 브라우저.
Carson63000

충분히 공평하기 때문에 REST 관점을 언급했습니다.
Gary Rowe

5

일반적으로 잘못된 필드로 양식을 POST 할 때 일반적으로 응답으로 제공하려는 항목은 동일한 필드 채우기와 동일한 양식 및 일부 오류 메시지입니다. POST / 리디렉션 / GET을 통해 수행하는 것이 번거로울 것입니다. GET에서 반환 한 페이지에 이미 양식 필드에 사용자 항목이 있는지 어떻게 확인합니까?


2
하나의 후속 요청 기간 동안 결과를 세션에 임시 저장하여?
알맞은 Dabbler

2
@ fireeyedboy : 그렇습니다, 그렇게 할 것입니다.
Carson63000
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.