적절한 HTTP 상태코드로 응답하기
2022. 1. 11. 17:50ㆍ강의 정리/Django Views
반응형
장고(Django)를 배우기 시작한 입문자이시거나, 또는 배우고 싶은 생각이 있으신 분은 위 출처의 강의를 적극 추천드립니다!!!
HTTP 상태코드
- 웹서버는 적절한 상태코드로서 응답해야 함
- 각 HttpResponse 클래스마다 고유한 status_code가 할당 (코드)
- REST API를 만들 때, 특히 유용
상태코드 사용법
def test_view(request):
# 201 상태코드를 반환한다.
return HttpResponse(status=201)
대표적인 상태 코드
- 200번대 : 성공
- 200 : 서버가 요청을 잘 처리했다 -> OK
- 201 : 작성됨. 서버가 요청을 접수하고, 새 리소스를 작성했다.
- 300번대 : 요청을 마치기 위해, 추가 조치가 필요하다.
- 301 : 영구 이동, 요청한 페이지가 새 위치로 영구적으로 이동했다.
- 302 : 임시 이동, 페이지가 현재 다른 위치에서 요청에 응답하고 있지만, 요청자는 향후 원래 위치를 계속 사용해야 한다.
-
def view(request): # 내부적으로 resolve_url 사용 # 인자로 지정된 문자열이 url reverse에 실패할 경우, # 그 문자열을 그대로 URL로 사용하여, redirect 시도 return redirect('shop:item_list')
-
- 400번대 : 클라이언트측 오류
- 400 : 잘못된 요청 # 유효성 검사 실패
- 401 : 권한 없음 # 유저가 인증이 되어지지 않았을 때
- 403 (Forbidden): 필요한 권한을 가지고 있지 않아서, 요청을 거부 # 유저가 인증은 했으나, 권한이 없을 때
- 404 : 서버에서 요청한 리소스를 찾을 수 없다.
-
def view(request): try: item = Item.objects.get(pk=100) except Item.DoesNotExist: raise Http404 def view(request): Item = get_object_or_404(Item, pk=100) # 내부에서 raise Http404
- 일치하는 리소스가 0개일 때는 DoesNotExist 오류
- 일치하는 리소스가 1개일 때는 정상 반환
- 일치하는 리소스가 2개일 때는 Multifle 오류
-
- 405 : 허용되지 않는 방법. POST 방식만을 지원하는 뷰에 GET 요청을 할 경우
- 500번대 : 서버측 오류 # 뷰에서 요청 처리 중에, 뷰에서 미처 잡지못한 오류가 발생했을 경우
- 500 : 서버 내부 오류 발생
반응형
'강의 정리 > Django Views' 카테고리의 다른 글
Django 휴대폰 망을 통해 접속하는 방법 (0) | 2022.01.14 |
---|---|
URL Reverse를 통해서 유연하게 URL 생성하기 (0) | 2022.01.11 |
Django 기본 CBV API (Generic date views) (0) | 2022.01.11 |
Django 뷰 장식자(Decorators) (0) | 2022.01.10 |
Django 기본 CBV API (Generic display views) (0) | 2022.01.10 |