반응형
오늘은 HTTP 메서드와 응답 코드에 대해 가볍게 배워보는 시간을 가져보겠습니다.
HTTP 메소드란?
클라이언트가 웹서버에게 요청을 보낼 때, 그 목적이나 종류를 웹서버에게 명시하는 방식입니다.
메서드의 종류는 아래와 같습니다.
Method | 설명 |
GET | 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 클라이언트가 웹 서버로부터 오직 데이터를 받는데만 사용됩니다. |
POST | 특정 리소스에 엔티티르 제출할 때 사용됩니다. 보통 클라이언트에서 입력한 정보를 저장하기 위해 웹 서버로 요청을 보낼때 사용됩니다. |
PUT | 해당 메서드는 목적 리소스의 모든 현재 표시를 요청 payload로 대체합니다. 즉, 목적 리소스가 이미 존재한다면 이를 PUT요청으로 전달된 payload로 완전히 대체하고 리소스가 존재하지 않는다면 새로 생성합니다. |
PATCH | 리소스의 일부만을 수정하는데 사용됩니다. PUT 요청과는 다르게 전체를 대체하지 않고 리소스중 변경을 희망하는 일부에 대해서만 변경(update)을 진행합니다. |
DELETE | 특정 리소스를 삭제하는데 사용됩니다. |
HEAD | GET 메서드 요청과 동일한 응답을 웹 서버에게 요구하지만, 응답 본문은 포함하지 않습니다. 즉, 요청에 대한 body없이 헤더와 상태 줄만 반환됩니다. |
CONNECT | 목적 리소스로 식별되는 서버로의 터널을 설정합니다. 주로 Proxy를 요청할 때 사용됩니다. |
OPTIONS | 목적 리소스의 통신을 설정할때 사용됩니다. 주로 웹서버에서 지원하는 메소드를 확인하기 위해 사용되는 메소드입니다. |
TRACE (en-US) | 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 하는데 사용됩니다. 즉, 요청 리소스에 대한 모든 경로를 보여달라는 요청인데 보안상의 이유로 보통 사용되지 않게 막아둡니다. |
HTTP 메서드 별 속성
HTTP 메서드의 속성으로는 요청/응답의 Body 유무, Safe(안전성), Idempotent(멱등성), Cacheable(캐시 가능성)이 있습니다.
요청/응답의 Body 유무는 따로 설명이 필요 없을 것으로 보이고 나머지 3가지 속성에 대해 알아보겠습니다.
- Safe: 계속해서 메서드를 호출해도 리소스를 변경시키지 않는다. (즉, 데이터를 생성, 수정, 삭제하지 않는다)
- Idempotent: 동일한 요청을 여러 번 보내도 한 번 보낸 것과 같음을 보장하는 것. 제대로 구현된 GET, PUT, DELETE 메서드는 멱등성을 가져야 한다.
- Cacheable: 단어 그대로 데이터를 캐싱해서 효율적으로 가져올 수 있는지에 대한 여부를 뜻합니다.
HTTP 응답 상태 코드
클라이언트의 요청에 대한 웹 서버의 처리 상태를 알려주기 위한 코드값을 의미하며 보통 100~500번대를 사용합니다.
각 코드별 자세한 의미를 하나하나 살펴보기보단 코드 대역 별로 무엇을 의미하는지 알아보겠습니다.
- 1xx (Informational): 요청이 수신되었으며 웹 서버의 프로세스가 진행되는 중입니다.
- 2xx (Successful): 요청이 정상적으로 수신되었으며 처리 또한 정상처리되었습니다.
- 3xx (Redirection): 요청에 대한 완료를 위해 추가 작업이 필요합니다.
- 4xx (Client Error): 클라이언트의 오류, 잘못된 문법으로 요청되는 등의 이유로 서버가 요청을 수행할 수 없습니다.
- 5xx (Server Error): 서버 오류, 웹 서버의 프로세스가 진행됨에 있어 정상 처리되지 못하였습니다.
참고
반응형
'for Developer' 카테고리의 다른 글
개발자 채용시 가산점(?) 리스트 (0) | 2022.02.12 |
---|---|
개발자 패션 정리 (2) | 2022.02.04 |
개발자 남편을 둔 아내.jpg (11) | 2022.01.29 |
개발자 공감짤 모음.zip (2) (0) | 2022.01.19 |
이쯤에서 돌이켜보는 신입 개발자 취업 (0) | 2022.01.18 |