Restful API(2)login

Creating the dots·2021년 11월 23일
0

project-3-ShallWeHealth

목록 보기
2/26

api를 작성하는 과정에서 로그인 요청을 보낼때, 서버에 데이터를 추가(create)하는 것은 아니기 때문에 get 요청이 맞지만 url에 개인정보를 노출하지 않고 body에 담아서 보내는 게 맞지 않나 싶어 post 요청으로 작성하는 게 맞는지에 대한 고민이 들었다.

get

  • 데이터 조회 기능(retrieve)을 하여 서버 데이터 상태를 변경하지 않으므로 멱등성을 갖는다.
  • HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 수 있다. GET 요청으로 서버에 리소스를 요청할때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다.
  • get 요청은 www.example.com?id=hello&password=helloworld와 같이 url에 유저 정보가 모두 노출되므로 보안정보를 다루면 안된다.
  • BODY에 데이터를 담지 않는다.

post

  • 서버의 리소스를 새로 생성하거나 업데이트하므로 멱등성을 갖지 않는다.
  • post 요청은 캐시되지 않는다.
  • body에 데이터를 담아 서버로 전송할 수 있다.
  • 이때, 헤더필드 중 BODY의 데이터를 설명하는 CONTENT-TYPE이라는 헤더필드가 들어가고, 어떤 데이터 타입인지 꼭 명시해주어야한다.
  • 데이터를 암호화하지 않으면 body의 데이터도 결국 볼 수 있다.

두가지 메소드에 대해 찾아본 결과, get과 post 두가지 메소드로 모두 로그인을 할 수는 있지만, 보안과 관련된 내용을 담고있으므로 post 요청을 보내는 것이 적절한 것 같다. 그리고, 두 요청 모두 결과적으로 내용을 확인할 수 있으므로 암호화시켜 전달해야할 것 같다.

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글