HTTP Method
HTTP Method

HTTP Method

Tags
Node.js
Web Dev
Published
January 22, 2024
Author
gozneokhan

HTTP(HyperText Transfer Protocol)

HTTP(하이퍼텍스트 전송 프로토콜)는 웹 상에서 데이터를 주고받기 위한 표준 프로토콜입니다. HTTP는 다양한 메서드를 정의하여 서버와 클라이언트 간의 통신을 처리합니다. 각 메서드는 특정 작업을 수행하도록 설계되어 있습니다.

Request

클라이언트에서 서버로 전송되는 요청에는 요청 방법, 요청 헤더, 요청 데이터 등이 있습니다.

Request Method

클라이언트는 다양한 방법으로 정보를 요청할 수 있습니다
이름
역할
GET
서버에게 데이터를 달라는 요청(열람)할 때 사용
HEAD
GET과 유사하지만, 서버가 응답할 때 Body 없이 Header만을 반환
POST
서버에게 데이터를 전송하는 요청에 사용
PUT
서버에서 요청 URI의 데이터를 수정하거나 새로 추가하도록 요청할 때 사용
PATCH
서버의 데이터를 일부 수정할 때 사용
DELETE
서버에서 요청 URI의 데이터를 삭제하도록 요청할 때 사용
TRACE
클라이언트로부터 수신한 요청을 응답에 포함시켜서 전달하며, 주로 디버깅 용도로 사용
OPTIONS
서버에서 특정 데이터가 어떤 Method를 지원하는지 알아볼 때 사용
CONNECT
록시를 통해 연결을 설정하기 위해 사용

Request Header

요청 헤더
설명
Accept
클라이언트가 수락할 수 있는 파일 유형
Authorization
서버에 대해 클라이언트 자신을 인증하는 경우
User-agent
클라이언트 소프트웨어의 이름 및 버전
Referer
링크에서 사용자가 클릭한 문서의 URL
Host
요청된 리소스의 인터넷 호스트 및 포트 번호

Request Data

POST 또는 PUT 요청을 할 때, 클라이언트는 요청 헤더 다음에 빈 줄을 두고 데이터를 서버로 전송할 수 있습니다. GET 또는 HEAD 요청의 경우에는 전송되는 데이터가 없으며, 클라이언트는 서버의 응답을 기다립니다.

Response

서버의 응답에는 상태 코드, 응답 헤더, 응답 데이터 등이 있습니다.

Response Status Code

클라이언트가 서버에 요청을 보내면, 서버는 세 자리 숫자로 이루어진 상태 코드와 함께 응답합니다.
상태코드
설명
1xx (Informational)
예비적 응답
2xx (Success)
성공적 트랜잭션
3xx (Redirection)
리디렉션
4xx (Client Error)
클라이언트 오류
5xx (Server Error)
서버 오류
일반적인 HTTP 상태 코드 중 몇 가지는 다음과 같습니다
상태코드
설명
200 OK
전송이 성공하였고 오류가 없음
302 Found
리디렉션 새 URL로 이동해야 함
304 Not Modified
로컬 캐시 사용 서버의 사본이 브라우저의 캐시와 동일하거나 더 최신일 때 사용
401 Unauthorized
인증 안 됨 사용자가 유효한 인증 정보를 제공하지 않음
403 Forbidden
금지됨 해당 URL에 액세스 권한이 없음
500 Internal Server Error
서버 오류. 서버 관련 오류가 발생함

Response Header

응답 헤더
설명
Server
웹 서버의 이름 및 버전
Date
현재 날짜 (그리니치 표준시)
Last-modified
문서가 마지막으로 수정된 날짜
Expires
문서가 만료되는 날짜
Content-length
전송되는 데이터의 길이 (바이트)
Content-type
전송되는 데이터의 MIME 유형
WWW-authenticate
인증 동안 사용되며 클라이언트 소프트웨어에 필요한 인증 정보를 알리는 정보

Response Data

서버의 응답은 헤더 필드 뒤에 빈 줄을 두고 문서 데이터를 전송합니다. 이 데이터에는 클라이언트가 요청한 내용이 포함되어 있습니다.

글을 마치며

주요 Method

GET

데이터를 서버로부터 요청하거나 조회할 때 사용하며, 주로 데이터를 가져오는 데 활용됩니다.

POST

서버에 데이터를 제출하고, 제출된 데이터로 새로운 리소스를 생성할 때 사용합니다. 주로 폼 데이터 전송이나 파일 업로드에 활용됩니다.

PUT

서버에 새로운 리소스를 생성하거나, 기존 리소스를 업데이트할 때 사용합니다. 전체 엔터티를 업로드하며, 이미 존재한다면 완전히 대체합니다.

PATCH

리소스의 부분적 업데이트를 요청할 때 사용하며, 리소스의 일부분만 업데이트합니다.

DELETE

서버에서 리소스를 삭제할 때 사용하며, 해당 리소스를 삭제하도록 서버에 요청합니다.

기타 Method

HEAD

GET 메서드와 유사하지만, 응답 본문을 포함하지 않고 헤더만 반환합니다. 주로 리소스의 메타데이터를 확인할 때 사용합니다.

OPTIONS

서버에 특정 리소스에 대한 허용 가능한 메서드를 요청하고, 서버가 해당 리소스에 대해 어떤 메서드를 지원하는지 확인합니다.

CONNECT

목적 리소스로의 터널을 설정할 때 사용하며, 일반적으로 프락시와 함께 사용되어 TLS/SSL 암호화된 연결을 설정합니다.

TRACE

원격지 서버에 루프백 테스트를 수행하기 위해 사용되며, 클라이언트에서 서버까지의 경로를 따라가며 중간의 프락시나 게이트웨이가 요청을 어떻게 처리하는지 확인합니다.

Reference