티스토리 뷰
웹개발을 하다보니 자주 보게 된 / 자주 볼 수 밖에 없는 HTTP Status Code 이다
그 중에서도 400과403에 의미에 대해 흥미로운 사실을 알게 되어 소개하고자 한다
1. 400 Bad Request
흔히 400 Bad Request 는 '잘못된 요청'을 의미한다고 알고 있다
하지만 HTTP/1.1을 정의한 RFC2616에 따르면 흔히 알고 있는 것과는 다른 문장을 통해 설명하고 있다
10.4.1 400 Bad Request
The request could not be understood by the server due to malformed
syntax. The client SHOULD NOT repeat the request without modifications.
해석해 보면 요청의 'syntax가 잘못되어서 이해를 못하겠다' 는 의미이다
하지만 HTTP/1.1개정판을 정의한 RFC7231에서는 흔히 알고 있는 것과 같이 '잘못된 요청'을 의미한다
6.5.1. 400 Bad Request
The 400 (Bad Request) status code indicates that the server cannot or
will not process the request because the received syntax is invalid,
nonsensical, or exceeds some limitation on what the server is willing
to process.
출처: https://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22#section-6.5.1
HTTP/1.1과 달리 '잘못된 요청으로 인해 request로 인해 수행할 수 없다(혹은 수행하지 않겠다)'라고 설명한다
2. 403 Forbidden
400보다도 더 큰 차이를 보이는 것은 403 Forbidden 에러이다
흔히 403 Forbidden은 '권한에 대한 에러'로 알고 있다
하지만 HTTP/1.1을 정의한 RFC2616에 따르면 흔히 알고 있는 것과는 다르게
'요청은 이해하지만 수행을 거부하겠다' 라고 설명하고 있다
10.4.4 403 Forbidden
The server understood the request, but is refusing to fulfill it.
하지만 HTTP/1.1개정판을 정의한 RFC7231에서는 흔히 알고 있는 것과 같이 '권한에 대한 에러'가 맞다
403 Forbidden
The 403 (Forbidden) status code indicates that the server understood
the request but refuses to authorize it. A server that wishes to
make public why the request has been forbidden can describe that
reason in the response payload (if any).
출처: https://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22#section-6.5.3
권한에 대한 에러를 설명하기 위해 'request를 이해했지만 이를 승인 할 수 없다(권한을 줄 수 없다)' 라고 설명하고 있다
흥미롭다 공부할게 참 많다는 생각을 다시 한번 하게끔 하는 내용이었다
'Development > Network' 카테고리의 다른 글
OSI 7 Layer (0) | 2017.09.04 |
---|---|
Session & Cookie (0) | 2017.06.30 |
HTTP / HTTPS (0) | 2017.06.28 |
- Total
- Today
- Yesterday
- 스프링 부트 시작 에러
- org.springframework.beans.factory.BeanDefinitionStoreException
- mariadb
- spring boot 시작 에러
- mariadb설치
- mysql데이터
- mac mariadb
- springframewor
- 스택
- mysql데이터타입
- Stack
- 400 error
- hash algorithm
- HTTP
- 자료구조
- 큐
- mariadb데이터 타입
- mac mariadb 설치
- 400 badgateway
- mysql 세팅
- spring boot org.springframework.beans.factory.BeanDefinitionStoreException
- 데크
- 해시알고리즘
- 스프링 부트 에러
- mariadb 데이터타입
- mac db설치
- mysql 데이터 타입
- 알고리즘
- hash알고리즘
- Data Structure
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |