본문 바로가기
카테고리 없음

[http] get, header

by 흰색남자 2022. 7. 5.

get이랑 header의 차이는 데이터를 어디에 넣어서 보내느냐에 따라 달라진다.

이 포스팅을 작성하는 이유는 postman만 쓰다가 react를 사용해서 api를 사용할때 나온 실수때문에 쓴다.

 

get방식의 프로토콜은 querystring을 사용해서 보낸다.

예를들면 www.naver.com?name=kjh&password=pw   이런 방식으로 요청해야한다.

fetch, axios, ajax등 여러가지 라이브러리를 사용해서 보내면 안되는 이유이다. 개발자모드 > network탭에 들어가서 요청, 응답 객체를 보면 이해할 수 있다. 애초에 body에 데이터를 넣어서 보내지 않기 때문에

spring에서 requestMapping을 사용해 봤자 요청이 안가기 때문이다.

하지만 postman을 사용해서 요청하면 결과가 제대로 나오는 것을 볼 수 있는데, 이것은 postman에서 requestbody를 직접 만들어서 보내기 때문이다. 우리는 브라우저를 사용하기 때문에 이것이 안된다. // get방식도 body에 데이터를 넣어서 보낼수 있지만, 권장하지 않는다.

 

post방식은 http의 body에 데이터를 넣어서 보낸다. post방식이 만능인 이유가 모든 요청을 처리할 수 있다. get을 대체할수도 있고, delete, fetch를 대체할 수 있다. 하지만, 멱등을 보장하지는 않는다.

 

body에 보내는 이유는 보안이 더 뛰어나기 때문이다. header에 넣고 보내면은 보안을 해주지 않는다.(https에서는 보안을 해줌) body 에 넣고 보내면은 암호화를 해주기 때문에  더 좋다.