Computer Science/Server, 네트워크

[HTTP] Status Code / Request Methods 정리

반응형

1. HTTP/2 순서

HTTP/2는 TCP 기반이며 HTTP/3는 UDP 기반 입니다.

 

HTTP/2 순서

1. TCP connection을 통하여 Client와 Sever 연결 확인

2. Client에서 request(요청)하여 GET(request메소드)을 통한 URL(정보를 받기위한 경로), headers(정보)으로 서버에 요청

3. Sever에서 response(응답) 통하여 status code와 관련된 파일을 보낸다.

4. TCP connection이 닫힌다.

 

 

2. HTTP Status Code 정리

참고 자료

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

100번대 (Informational)

100 Continue - 응답은 지금까지의 상태가 괜찮으며 클라이언트가 계속해서 요청해라
102 Processing - 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려줍니다.

 

200번대 (Successful)

200 OK - 요청이 성공적으로 되었습니다
201 Created - 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.
204 No content - 요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미있을 수 있습니다.

 

300번대 (Rdeirection)

301 Moved Url
302 Found - 요청한 리소스의 URI가 일시적으로 변경되었음을 의미
303 See Other (get 요청) - 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때, 서버가 클라이언트로 직접 보내는 응답입니다.
307 Temporary Redirect - 클라리언트가 요청한 리소스가 다른 URI에 있으며, 이전 요청과 동일한 메소드를 사용하여 요청해야할 때, 서버가 클라이언트에 이 응답을 직접 보냅니다. 이것은 302 Found HTTP 응답 코드와 동일한 의미를 가지고 있으며, 사용자 에이전트가 반드시 사용된 HTTP 메소드를 변경하지 말아야 하는 점만 다릅니다

 

400번대 (Client error)

400 Bad Request - 이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미
401 Unauthorized - 로그인 되지 않은 사람이 특정 API을 요청할 때
403 Forbidden (admin) - 클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다
404 Not Found - 서버는 요청받은 리소스를 찾을 수 없습니다. 브라우저에서는 알려지지 않은 URL을 의미합니다.  
405 Method Not Allowed - 필수적인 메소드인 GET HEAD는 제거될 수 없으며 이 에러 코드를 리턴할 수 없습니다. (서버에 없는 URL 엔드포인트)
409 Conflict - 이 응답은 요청이 현재 서버의 상태와 충돌될 때 보냅니다.
410 Gone - 리소스가 삭제되었을 때
429 Too Many Requests  - 사용량 초과 오류

 

500번대 (Server error)

500 Internal Server Error - 서버 내부 문제로 처리 불가능
502 Bad Gateway - 중간에 있는 서버가 처리를 어떻게 할지 모를 때
503 Service Unavailable - 서버가 준비가 되지 않았을 때

 

3. HTTP Request Methods

참고 자료

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org

 

GET (get) GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
Status Code : 200, 401, 403, 404, 405

POST (create) URL에 가리키는 곳에 만들때
Status Code : 201, 401, 403, 404, 409

PUT (replace) URL에 가리키는 곳에 업데이트
DELETE (delete) URL에 가리키는 곳에 삭제
PATCH (replace partially) URL에 가리키는 곳에 부분 업데이트
Status Code : 200, 204, 403, 404, 405

HEAD (get without body) GET 메서드의 요청과 동일한 응답을 요구하지만, Head만 받을때
OPTIONS (all supported method for URL) 사용가능한 request 옵션에 대해 알고 싶을때
TRACE (echoes the received request) 서버가 동작하는지에 대해 반응 확인
Status Code : 200, 401, 403, 404, 405

※ Status Code는 절대적인 것이 아닌 예시

 

1. 서버에 있는 데이터를 읽을 때만 사용하는 Methods (읽기만 하기에 안전하다)

- GET, HEAD, OPTIONS, TRACE

 

2. 서버에 데이터를 변경하는 Methods (서버에 데이터를 변경하기에 불안전하다)

- POST, PUT, DELETE, PATCH

 

멱등성

동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 다른 말로는, 멱등성 메서드에는 통계 기록 등을 제외하면 어떠한 부수 효과(side effect)도 존재해서는 안됩니다. 올바르게 구현한 경우 GET, HEAD, PUT, DELETE 메서드는 멱등성을 가지며, POST 메서드는 그렇지 않습니다. 모든 안전한 메서드는 멱등성도 가집니다.

 

 

 

반응형

'Computer Science > Server, 네트워크' 카테고리의 다른 글

[네트워크] 웹 캐시  (0) 2021.08.09
[네트워크] HTTP 헤더  (0) 2021.08.09
[네트워크] 인터넷 프로토콜 (IP, TCP/UDP, HTTP)  (0) 2021.08.09
[Server] Express, Middleware  (0) 2021.08.07
[Server] OAuth 2.0  (0) 2021.08.04