IT/[FE] 위클리 페이퍼

[FE] 📚 HTTP 메소드란?

serin99 2024. 7. 12. 23:47
728x90



🤗 오늘의 위클리 페이퍼는

HTTP 메소드에 대한 토픽입니다.



📝 HTTP란?

HTTP란 무엇인가요?
HTTP(HyperText Transfer Protocol)는 웹 상에서 클라이언트와 서버가 서로 통신하는 데 사용하는 프로토콜입니다. 

클라이언트는 브라우저와 같은 프로그램이며, 서버는 웹 페이지나 데이터를 제공하는 컴퓨터 시스템입니다. 

클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 응답을 돌려줍니다.

 

 

📝 HTTP 메소드란?


웹 개발을 시작하면 HTTP 메소드라는 용어를 자주 접하게 됩니다.

HTTP 메소드는 클라이언트(브라우저)가 서버에 요청을 할 때 사용하는 다양한 방법을 의미합니다.

 

즉, 클라이언트가 웹 서버에게 사용자 리퀘스트의 목적이나 종류를 알리는 수단입니다.

 


주요 HTTP 메소드
HTTP 메소드는 클라이언트가 서버에 요청할 때 사용하는 여러 가지 방법입니다. 가장 많이 사용되는 HTTP 메소드는 GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS 등이 있습니다.

 


 

📗  GET

GET은 데이터를 받기 위해 사용하는 메소드입니다.

 

1.리퀘스트 바디는 사용하지 않고, 쿼리 스트링을 사용합니다.
2. 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시될 수 있습니다.
3. 서버의 데이터 변경이 일어나지 않습니다.
4. 멱등성을 가집니다. (= GET으로 동일한 리퀘스트를 반복하여 전송하더라도 동일한 응답이 돌아옵니다)

 

 

특징: 요청 데이터를 URL에 포함시키며, 데이터를 조회할 때 주로 사용됩니다.

 

예시: 웹 페이지를 열 때 브라우저가 서버에 GET 요청을 보냅니다.

GET /index.html HTTP/1.1
Host: www.example.com

 


 

📙 POST

 

POST는 새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보내는 메소드입니다.

 

1. 리퀘스트 바디를 사용합니다.
2. 일반적으로 캐시되지 않습니다.
3. 리소스 생성할 경우, 이미 리소스가 있더라도 새로운 리소스를 생성합니다.
4. 서버의 데이터 변경이 일어날 수 있습니다.
5. 멱등성을 가지지 않습니다. (= POST으로 동일한 리퀘스트를 반복하면 동일한 응답을 보장할 수 없습니다)

 

 

특징: 요청 데이터를 요청 본문에 포함시키며, 주로 폼 데이터를 서버에 보낼 때 사용됩니다.

예시: 로그인 폼을 제출할 때 브라우저가 서버에 POST 요청을 보냅니다.

POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded

username=user&password=pass

 

📘 PUT

 

PUT은 새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보내는 메소드입니다.


1. 서버에 리소스가 없으면 생성하고, 있으면 클라이언트가 보낸 데이터로 대체하고 추가로 생성하진 않습니다.
2 .멱등성을 가집니다.

특징: 요청 본문에 데이터를 포함시키며, 주로 리소스를 생성하거나 대체할 때 사용됩니다.

예시: 사용자의 프로필 정보를 업데이트할 때 PUT 요청을 보냅니다.

PUT /user/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com"
}

 


 

📕 Delete

 

지정한 리소스를 삭제하는 메소드입니다.

1. 서버의 데이터를 삭제하는 변경을 합니다.
2. 멱등성을 가집니다.

특징: 주로 데이터 삭제 요청에 사용됩니다.

예시: 게시글을 삭제할 때 DELETE 요청을 보냅니다.

DELETE /post/123 HTTP/1.1
Host: www.example.com

 

📖 추가적으로 알아두면 좋을 메소드

 

PATCH

기존 리소스의 부분적인 수정을 위한 메소드입니다.
PUT 리퀘스트는 데이터를 완전히 대체하는 것이라면, PATCH는 부분 수정을 위한 메소드입니다.

{
    id: 'codeit',
    name: '코드잇',
    email: 'codeit@codeit.com',
    password: '1234'
}

 

예를 들어, 위와 같은 데이터가 있다면, id, name, email, password 전체를 생성 또는 변경하는데는 PUT을 사용하고, 기존에 있던 데이터에 name만 변경할 때는 PATCH를 사용합니다.

 


 

HEAD

특정 리소스를 GET 메소드로 요청했을 때 돌아올 헤더를 받기 위한 메소드입니다.

 

1. 리스폰스에 바디 부분은 제외하고, 헤드 부분만 받습니다.
2. 실제 데이터가 아니라 데이터에 관한 정보만 얻으려고 하는 상황에 활용합니다.
3. 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시될 수 있습니다.
4. 멱등성을 가집니다.

 

특징: 주로 리소스의 헤더 정보만 필요할 때 사용됩니다.

예시: 리소스의 메타데이터를 확인할 때 HEAD 요청을 보냅니다.

HEAD /index.html HTTP/1.1
Host: www.example.com

 


 

OPTIONS

주어진 URL 또는 서버에 대해 허용된 통신 옵션을 받기 위한 메소드입니다

 

1.허용된 리퀘스트 메소드를 확인하거나 리소스에 대해 지원하는 옵션을 확인할 때 사용합니다.
2.멱등성을 가집니다.

 

특징: 주로 리소스의 헤더 정보만 필요할 때 사용됩니다.

 

예시: 특정 리소스에 대해 서버가 지원하는 메소드를 확인할 때 OPTIONS 요청을 보냅니다.

OPTIONS /index.html HTTP/1.1
Host: www.example.com

 


 

✅  결론

 

HTTP 메소드는 클라이언트가 서버에 어떤 작업을 요청하는지를 나타내는 중요한 도구입니다. GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS 등의 메소드는 각각 고유한 목적과 특징을 가지고 있습니다. 이러한 메소드들을 이해하고 올바르게 사용하는 것은 웹 개발의 기본이자 핵심입니다.

728x90