HTTPQUERY
한국어

303 See Other

사용법

303 See Other 상태 코드는 보통 POST, PUT, DELETE 요청 뒤에 반환됩니다. 작업의 결과는 다른 URL에서 확인할 수 있으며, 클라이언트는 지정된 Location으로 GET 요청을 보내 새 리소스를 가져옵니다.

참고

많은 서버가 역사적으로 303을 의미하면서 302를 보냈고, 많은 클라이언트는 요청 메서드를 GET으로 바꿈으로써 302를 303처럼 처리합니다.

SEO 영향

Google은 303을 302, 307과 함께 임시 리다이렉트로 분류합니다. Googlebot은 리다이렉트를 따라가지만, 303은 대상이 선호 URL이라는 약한 신호로 취급합니다.

예시

클라이언트가 특정 리소스의 삭제를 요청합니다. 원래 위치에는 더 이상 볼 수 있는 리소스가 없으므로 서버는 303 See Other를 보내고, 새 Location의 확인 페이지를 가리킵니다.

요청

DELETE /tasks/314 HTTP/1.1
Host: example.com

응답

HTTP/1.1 303 See Other
Location: http://example.com/confirmation/delete.html

303과 307의 비교

303과 307은 둘 다 임시 리다이렉트이지만 메서드 처리 방식이 다릅니다. 303 응답은 원래 메서드가 무엇이든 요청 메서드를 GET(또는 HEAD)으로 바꿉니다. 307 응답은 원래 메서드와 본문을 보존합니다. POST 이후 클라이언트가 결과 페이지를 가져와야 할 때는 303을 사용하세요. 새 위치에서 동일한 요청을 그대로 반복해야 할 때는 307을 사용하세요.

코드 참고

.NET

HttpStatusCode.SeeOther

Rust

http::StatusCode::SEE_OTHER

Rails

:see_other

Go

http.StatusSeeOther

Symfony

Response::HTTP_SEE_OTHER

Python3.5+

http.HTTPStatus.SEE_OTHER

Java

java.net.HttpURLConnection.HTTP_SEE_OTHER

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_SEE_OTHER

Angular

@angular/common/http/HttpStatusCode.SeeOther