Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 데이터베이스
- 백준 4949번
- 리액트 네이티브
- 팀플회고
- 데베
- 백준 4358 자바
- HTTP
- 깃허브 로그인
- 머신러닝
- 스터디
- 리액트 네이티브 시작하기
- 백준 4358번
- 백준
- 지네릭스
- 깃허브 토큰 인증
- 문자열
- 리액트 네이티브 프로젝트 생성
- 모두의 네트워크
- 모두의네트워크
- 딥러닝
- React Native
- 모두를 위한 딥러닝
- SQL
- 자바
- 정리
- 깃 터미널 연동
- 백준 5525번
- 깃 연동
- 모두를위한딥러닝
- 네트워크
Archives
- Today
- Total
솜이의 데브로그
4장 ) 결과를 전달하는 HTTP 상태코드 본문
Reference : 그림으로 배우는 Http&Network Basic
1. 상태코드는 서버로부터 리퀘스트 결과를 전달한다
클라이언트 리퀘스트 송신시 결과가 정상이면 상태코드 2xx, 에러면 상태코드 4xx, 5xx
상태코드는 200 OK 와 같이 3자리 숫자와 설명으로 나타낸다.
상태코드 클래스
클래스 | 설명 | |
1xx | Informational | 리퀘스트를 받아들여 처리중 |
2xx | Success | 리퀘스트를 정상적으로 처리했음 |
3xx | Redirection | 리퀘스트를 완료하기 위해서 추가 동작이 필요 |
4xx | Client Error | 서버는 리퀘스트 이해 불가능 |
5xx | Server Error | 서버는 리퀘스트 처리 실패 |
상태코드는 60종류 이상이 있지만, 실제로 자주 사용되고 있는 것은 14종류정도이다.
2. 2xx 성공 (Success)
2xx 리스폰스는 리퀘스트가 정상적으로 처리되었음을 나타낸다.
- 200 OK : 클라이언트가 보낸 리퀘스트를 서버가 정상 처리하였음. (리스폰스에서 상태코드와 함께 되돌아오는 정보는 메소드에 따라 다르다)
- 204 No Content : 서버가 리퀘스트를 받아서 처리하는데는 성공했지만 리스폰스에 엔티티 바디를 포함하지 않는다.
- 206 Partial Content : Range에 의해서 범위가 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받았음을 나타낸다. 리스폰스에는 Content-Range로 지정된 범위의 엔티티가 포함된다.
3. 3xx 리다이렉트 (Redirect)
리퀘스트가 정상적으로 처리를 종료하기 위해 브라우저 측에서 특별한 처리를 수행해야함을 나타낸다.
- 301 Moved Permanently : 리퀘스트된 리소스에는 새로운 URI가 부여되어 있기 때문에, 이후로는 그 리소스를 참조하는 URI를 사용해야 한다는 것을 나타내고 있다.
- 302 Found : 리퀘스트된 리소스에는 새로운 URI가 할당되어 있기 때문에, 그 URI를 참조하라는 의미를 나타내고 있다. 301과는 다르게 영구적인 이동이 아닌 일시적인 것이다.
- 303 See Other : 리퀘스트에 대한 리소스는 다른 URI에 있기 때문에 GET 메소드를 사용해서 얻어야 한다는 것을 나타내고 있다. 302와의 다른점은 리다이렉트 장소를 GET메소드로 얻어야한다고 명확하게 되어있는 점이다.
- 304 Not Modified : 클라이언트가 조건부 리퀘스트를 했을 때 리소스에 대한 액세스는 허락하지만, 조건이 충족되지 않음을 표시한다. 304를 되돌려 줄 때는 리스폰스 바디에 어떤 것도 포함되어있어서는 안된다.
- 307 Temporary Redirect : 302 Found와 같은 의미를 갖지만, 브라우저 사양에 다라 POST에서 GET으로 치환을 하지않는다.
4. 4xx 클라이언트 에러 (Client Error)
4xx 리스폰스는 클라이언트의 원인으로 에러가 발생했음을 나타낸다.
- 400 Bad Request : 리퀘스트 구문이 잘못되었음을 나타낸다. 브라우저는 이것을 200 OK와 같이 취급한다.
- 401 Unauthorized : 송신한 리퀘스트에 HTTP인증 정보가 필요하다는 것을 나타냄. 1번 리퀘스트가 이루어진 경우에는 유저 인증에 실패했음을 표시.
- 401을 포함한 리스폰스를 되돌리는 경우 리퀘스트 된 리소스에 적용되는 challenge를 포함한 WWW-Authenticate 헤더 필드를 포함해야한다.
- 브라우저에서 처음 401 리스폰스를 받은 경우 인증을 위한 다이얼로그가 표시된다.
- 403 Forbidden : 리퀘스트된 리소스의 엑세스가 거부되었음을 나타낸다. 이유는 엔티티 바디에 기재해서 유저측에 표시.
- 발생 원인으로는 파일 시스템의 퍼미션이 부여되지 않은 경우와 엑세스 권한에 문제가 있는 경우.
- 404 Not Found : 리퀘스트한 리소스가 서버상에 없다는 것을 나타냄. 또는 거부이유를 밝히지 않는 경우.
5. 5xx 서버 에러 (Server Error)
5xx 리스폰스는 서버 원인으로 에러가 발생함을 나타낸다.
- 500 Internal Server Error : 서버에서 리퀘스트를 처리하는 도중에 에러가 발생했음을 나타낸다.
- 503 Service Unavailable : 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타낸다. 해소되기까지 시간이 걸리는 경우 Retry-After 헤더필드에 따라 클라이언트에 전달하는 것이 좋다.
상태코드가 현재 상황과 불일치 할 수도 있다.
느낀점
http.. 어렵고.. 상태코드는 사실 전공에서 훨씬 다양하게 배웠지만 아직 300번대 에러는 잘 모르겠다.
'CS > Network' 카테고리의 다른 글
5장 ) 네트워크 계층 (0) | 2021.10.09 |
---|---|
5, 6장 ) 웹 서버, HTTP 헤더(1) (0) | 2021.10.09 |
4장 ) 데이터링크 계층 (0) | 2021.09.30 |
3장 ) HTTP 정보는 HTTP 메시지에 있다 (0) | 2021.09.22 |
3장 ) 물리계층 (0) | 2021.09.22 |