✅ 쿼리 스트링으로 인코딩되지 않은 URL 데이터를 추가적으로 전송한 이슈가 있음
✅ URL 인코딩과 그걸 가능하게 하는 웹 인코딩 표준을 알아봄
✅ URL(Uniform Resource Locator)은 특정 문자를 포함할 수 없음
✅ ?, &, =등은 쿼리 스트링과 의미 중복으로 변환 필요
✅ URL Encoding은 특정 문자를 %로 시작하는 16진수(%XX) 형식으로 변환
공백 %20/+
& %26
= %3D
? %3F
/ %2F
HTTP/1.1 방식의 URL 요청이 해당 scheme://authority/path?query#fragment/search?q=spring boot&sort=desc 공백 포함boot&sort=desc를 새로운 쿼리 파라미터로 인식 가능/search?q=spring%20boot&sort=desc 공백 인코딩URL Encoder
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
String query = "spring boot";
String encodedQuery = URLEncoder.encode(query, StandardCharsets.UTF_8);
System.out.println(encodedQuery);
Spring WebClient
WebClient webClient = WebClient.create("https://example.com");
String query = URLEncoder.encode("spring boot", StandardCharsets.UTF_8);
String response = webClient.get()
.uri(uriBuilder -> uriBuilder.path("/search")
.queryParam("q", query)
.build())
.retrieve()
.bodyToMono(String.class)
.block();
queryparam() 내부 URL 인코딩 구현 처리