
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}/deletePOST를 통해 데이터를 등록하며, 서버가 리소스 URI를 결정한다.PUT을 통해 데이터를 등록하며, 클라이언트가 리소스 URI를 알고 관리한다.GET과POST만 지원하므로, 복잡한 작업을 위해선 컨트롤 URI를 사용할 수도 있다.웹 개발에서 대부분의 API 요청의 경우 컬렉션을 사용하고, 스토어의 경우 AWS S3에 파일을 업로드하는데 사용이 됐던거 같기도 하다. 부트캠프를 했을 때 초반에 담당 멘토님께 HTML Form과 AJAX 중 어떤것을 더 많이 사용하냐 여쭤봤는데, HTML Form은 거의 사용되지 않는다고 하셨다. 나 또한 대부분의 웹개발은 자바스크립트를 사용하므로 UI와 연결이 강하게 돼있는 HTML Form에서 직접 전송하기 보다는 AJAX를 통해서 요청을 하는 편이 더 낫고, 편하다고 생각한다. 하지만 만약 자바스크립트를 사용하지 않는다면 HTML Form을 사용해야하므로 컨트롤러, 컨트롤 URI를 사용할 수도 있을 것 같다.