[web] 브라우처 주소창 입력 시 요청: GET

artp·2025년 5월 13일
0

web

목록 보기
1/9
post-thumbnail

웹 개발 중 다음과 같은 의문이 들었습니다.

“브라우저에서 URL을 직접 입력하면 무슨 방식으로 서버에 요청을 보낼까?”
"브라우저 주소창 입력은 무조건 GET 요청일까?"

❗️결론: 브라우저 요청은 무조건 GET만 가능합니다.

브라우저 주소창 요청은 GET만 가능

브라우저 주소창에 URL을 입력하고 엔터를 치면, 브라우저는 그 URL에 대해 GET 요청을 자동으로 생성합니다.

예: https://example.com/products?category=book&page=2

이 요청은 다음과 같은 HTTP 메시지로 전송됩니다.

GET /products?category=book&page=2 HTTP/1.1
Host: example.com
  • GET: 요청 방식 (브라우저가 자동 지정)
  • /products?...: 요청 경로와 파라미터 (쿼리스트링)
  • Host: 대상 서버 도메인

사용자가 주소창에 입력하는 것은 GET 요청 외에는 선택지가 없습니다.

주소창으로는 POST, PUT, DELETE 요청 불가

HTTP에는 여러 요청 방식이 있지만, 브라우저 주소창은 오직 GET만 사용합니다.

요청 방식주소창에서 사용 가능?설명
GET✅ 가능브라우저 주소창, 링크 클릭, 기본 요청
POST❌ 불가폼 제출 또는 JavaScript 필요
PUT❌ 불가JavaScript 필요
DELETE❌ 불가JavaScript 필요

데이터를 함께 보내고 싶을 땐?

GET 방식은 데이터를 쿼리스트링으로 보냅니다.

예: https://example.com/search?keyword=apple

이 URL을 통해 keyword=apple이라는 데이터를 서버에 전달할 수 있습니다.

하지만 이 데이터는:

  • 주소창에 노출되며,
  • 길이 제한이 있으며,
  • 본문(body)에 담기지 않기 때문에 보안에 약합니다.

GET 요청은 body에 데이터를 넣을 수 있을까?

HTTP 스펙상 “GET 요청에 body를 허용하지 말라”는 강제 조항은 없습니다.
하지만 대부분의 브라우저와 서버는 GET 요청에 포함된 body를 무시하거나 거부합니다.

// 예시 (비추천)
fetch("/search", {
  method: "GET",
  body: JSON.stringify({ keyword: "apple" })
});
  • GET 요청에서 데이터를 보내고 싶다면 쿼리스트링을 반드시 사용해야 합니다.

주소창 요청의 보안 한계점

항목GET 방식특징
데이터 노출URL에 그대로 보임
캐싱 가능성브라우저가 이전 요청 결과를 저장할 수 있음
즐겨찾기 등록URL이 고정되어 가능
보안 정보 전송ID/PW 같은 민감 정보 전송 금지

로그인이나 개인정보 제출 등 민감한 작업은 절대 GET 요청으로 하면 안 됩니다.

정리

  • 브라우저 주소창에 입력하거나 링크를 클릭하면 항상 GET 요청이 전송됩니다.
  • GET 요청은 데이터를 쿼리스트링을 통해 전송합니다.
  • GET 요청에는 body를 포함할 수 없으며, 실무에서는 절대 사용하지 않습니다.
  • 다른 HTTP 메서드(POST, PUT, DELETE 등)는 JavaScript나 form 태그를 사용해야 합니다.
profile
donggyun_ee

0개의 댓글