실무에서 api를 다루면서 get방식일때는 body값 전달이 안되는 걸로 알고 있었지만 curl로 호출시에는 get방식일때도 body값 전달이 가능하다는 것을 알았다.
http api 호출시와 curl 호출시의 차이점이 있어 정리하게 되었다.
1.GET
브라우저 기반 HTTP 클라이언트에서는 GET body를 지원하지 않지 않아 JSP 에서 GET 방식으로 호출시 body값에 정보를 보낼 수 없다. body에 정보를 담아서 보내고 싶으면 POST 방식을 사용해야한다.
하지만 curl은 브라우저가 아니다. HTTP 요청을 거의 있는 그대로 보내기때문에 GET방식이여도 body값에 정보를 보낼 수 있다.
2.PATCH
curl에서는 호출 가능하지만, JSP에서 HttpURLConnection은 왜 PATCH 사용이 불가하다.
HttpURLConnection 은 오래된 JDK 표준 클래스고, 초기 설계 당시엔 PATCH가 표준 메소드가 아니었음.
그래서 내부적으로 GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE 만 지원한다.
HttpURLConnection conn =
(HttpURLConnection) url.openConnection();
conn.setRequestMethod("PATCH"); // ❌
'인프라' 카테고리의 다른 글
| [용어] appliance vs application 차이 (1) | 2024.11.14 |
|---|---|
| [방화벽] 단방향 방화벽 오픈할 경우 클라이언트 port가 필요없는 이유 (0) | 2024.11.14 |