HTTP 메서드를 사용하여 클라이언트와 서버 간 데이터를 주고받는 방식은 크게 두 가지로 나누어진다.
GET
메서드를 사용하여 주로 검색어의 정렬 및 필터를 처리할 때 활용한다.// Example: 검색어를 쿼리 파라미터로 전달하여 서버에 GET 요청
const searchQuery = "JavaScript";
const language = "en";
fetch(`https://example.com/search?q=${encodeURIComponent(searchQuery)}&lang=${encodeURIComponent(language)}`)
.then(response => response.json())
.then(data => {
console.log("Search Results:", data);
})
.catch(error => {
console.error("Error fetching data:", error);
});
POST
, PUT
, PATCH
메서드를 사용하여 데이터를 서버로 전송할 때 사용된다.// 회원 가입 정보를 메시지 바디로 전달하여 서버에 POST 요청
const userData = {
username: "newuser",
password: "securepassword",
email: "newuser@example.com"
};
fetch("https://example.com/register", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(userData)
})
.then(response => response.json())
.then(data => {
console.log("Registration Successful:", data);
})
.catch(error => {
console.error("Error registering user:", error);
});
GET
메서드를 사용하며, 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순 조회한다.GET /static/star.jpg HTTP/1.1
Host: localhost:8080
GET
메서드를 사용하며, 쿼리 파라미터를 활용하여 동적으로 생성된 데이터를 조회한다.GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
Content-Type: application/x-www-form-urlencoded
을 사용하여 메시지 바디에 데이터를 담아 전송한다multipart/form-data
를 사용하여 파일과 데이터를 함께 전송한다.POST /save HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
username=kim&age=20
POST
, PUT
, PATCH
: 메시지 바디를 통해 데이터를 전송한다.GET
: 쿼리 파라미터를 통해 메시지를 전달한다.Content-Type: application/json
(JSON 형식으로 데이터를 전달)POST /members HTTP/1.1
Content-Type: application/json
{
"username": "young",
"age": 20
}
/members/100
, /files/star.jpg
/members
/files
/members/{id}/delete
POST
를 통해 데이터를 등록하며, 서버가 리소스 URI를 결정한다.PUT
을 통해 데이터를 등록하며, 클라이언트가 리소스 URI를 알고 관리한다.GET
과POST
만 지원하므로, 복잡한 작업을 위해선 컨트롤 URI를 사용할 수도 있다.웹 개발에서 대부분의 API 요청의 경우 컬렉션을 사용하고, 스토어의 경우 AWS S3에 파일을 업로드하는데 사용이 됐던거 같기도 하다. 부트캠프를 했을 때 초반에 담당 멘토님께 HTML Form과 AJAX 중 어떤것을 더 많이 사용하냐 여쭤봤는데, HTML Form은 거의 사용되지 않는다고 하셨다. 나 또한 대부분의 웹개발은 자바스크립트를 사용하므로 UI와 연결이 강하게 돼있는 HTML Form에서 직접 전송하기 보다는 AJAX를 통해서 요청을 하는 편이 더 낫고, 편하다고 생각한다. 하지만 만약 자바스크립트를 사용하지 않는다면 HTML Form을 사용해야하므로 컨트롤러, 컨트롤 URI를 사용할 수도 있을 것 같다.