-
[Computer Network] Http methods & status codeComputer Network 2022. 11. 6. 23:42
1. methods 종류
- get 리소스 조회! body 사용 권장 x (지원하지 않은 곳 많음) query_params 이용
- post 메세지 바디를 통해 서버로 요청 데이터 전달 → 요청 데이터를 처리(ex -등록/프로세스 상태변경 ... ) 요청 data를 어떻게 처리할지 리소스마다 따로 정의해야함 !! 보통 새 리소스 생성 / 요청 데이터 처리 / 다른 메소드로 처리하기 애매한 경우
- put 리소스가 있으면 완전히 대체!!(덮어버리기~) post와 차이점은 put은 해당 리소스의 위치를 알고있다! ex) members/100
- patch 리소스의 부분 변경~ put은 완전히 대체임.
- delete 리소스 제거
- head get에서 body가 안오는 것
- options
2. Http method 속성
- 안전
호출해도 리소스가 변경되지 않는다. → get, head - 멱등
여러번 여러번~~ 호출해도 결과값이 변하지 않는다.
→ get, put, delete
*post는 멱등 아님
멱등을 통해, 자동 복구 매커니즘 실행 서버가 정상응답을 못주었을때, 클라이언트가 재 요청해도 되는가? 멱등이면 가능. - 캐시가능
응답 결과 리소스를 캐시해서 사용해도 되는가?
get, head, post, patch 가능
but, get, head만 주로 사용
3.Http 상태코드
1) 1XX
거의~~~ 사용하지 않음. 요청이 수신되어 처리중이다
2) 2XX
거의~~~ 사용하지 않음. 요청이 수신되어 처리중이다- 200 = 보편적으로 많이 쓰이고, 요청이 잘 처리되었다는 의미. 주로 GET에서 많이 쓰임.
- 201 = 등록(혹은 Created)이 성공할때 주로 쓰임. post
- 202 = 요청이 들어왔으나, 처리가 완료되지 않음.(accepted)
- 204 = 응답 페이로드 본문에 보낼 데이터가 없을때(No Content)
3) 3XX
리다이렉션 → 요청을 완료하기 위해, 유저에이전트(웹브라우저)의 추가 조치(또 다른 api 전송) 필요 → 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 가라~
(1) 영구 리다이렉션 = 해당하는 url말고, 특정 url로 가라~- 301 Moved Permatnetly: 리다이렉트시, 요청 메서드가 get으로 변하고, 본문이 제거 될 수 있음.
- 308 Permanent Redirect: 리다이렉트시 요청메서드와 본문 유지.
(2) 일시 리다이렉션 = 일시적으로 url을 변경
- 302 Found: 리다이렉트시, 요청메서드가 get으로 변하고, 본문이 제거될 수 있다.
- 307 Temporary Redirect: 리다이렉트시, 요청메서드와 본문 유지.
- 303 See other: 리다이렉트시, 요청메서드가 get으로 변경
[PRG] = POST → Redirect → Get 만약 Redirect를 안하면, 새로고침 시 post가 2번 발생 !!
(3) 캐시 리다이렉션
- 300 Multiple Choices: 안쓴다.
- 304 Not Modified: 캐시를 목적으로 사용. get, head 요청시 사용. 클라이언트에게 리소스가 수정되지 않았음을 알려주고, 따라서 클라이언트는 로컬pc에 저장된 캐시를 재사용(리다이렉트) 한다.
4) 4XX
=클라이언트 오류- 400 Bad request : 요청 파라미터가 잘못되거나, api 스펙에 맞지 않을 때
- 401 Unauthorized : 인증이 되지 않을때 사용. ex- 로그인을 해야하는데, 로그인이 안되었는 상황 응답에 www-authenticate 헤더와 함께 인증방법을 설명.
- 403 Forbidden: 서버가 요청을 이해하지만, 승인을 거부함. 보통, 접근권한이 불충분한 경우
- 404 Not Found: 요청 리소스 찾을 수 없을때
5) 5XX
=서버 오류- 500 Internal Server Error: 서버문제로 오류 발생, 애매하면 500
- 503 Service Unavaliable : 서버가 일시적으로 과부하 또는 서버다운 또는 서버 점검 등으로 잠시 요청을 처리 할 수 없음.
'Computer Network' 카테고리의 다른 글
[AWS] AWS SES를 통해 보낸 이메일의 열기 클릭 반송 모니터링 (0) 2023.02.12 [Computer Network] AWS Route53 (dns) 레코드 유형 (0) 2022.12.11 [Computer Network] HTTP (0) 2022.11.06 [Computer Network] URI와 Web Browser (0) 2022.10.30 [Computer Network] 인터넷 통신 (0) 2022.10.30