[개발자 인터뷰] Get vs Post

Joey Hong·2020년 10월 4일
0
post-custom-banner

🦋 GET

서버에서 특정 데이터를 가져와서 보여주는 용도

  • get을 쓰면 url이 깔끔
  • 요청을 전송할 때 필요한 데이타를 쿼리스트링을 통해 전송
    • 전송 길이 제한O
    • URL에 조회 조건을 표시하기 때문에 특정 페이지 링크or북마크 가능
    • 링크에 정보가 바로 보여 보안에 취약
    • URL뒤 ? 뒤에 전송할 데이타 입력
    • 데이타표현은 key와 value를 쌍으로 작성 (key1=value1&key2=value2)
  • 멱등(idempotent) - 동일한 요청을 여러 번 해도 동일한 응답이 돌아온다
    • 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있다
  • 한 번 요청한 것은 캐싱해두어 재요청 시 POST보다 빠르다
    • 이미지같은 정적 컨텐츠는 캐시해둔다.
      • 컨텐츠를 변경해도 내용이 바뀌지 않는 경우가 종종 발생해 이 때는 캐시를 지워 변경된 컨텐츠를 새로 요청해야 볼 수 있다

🦋 POST

서버의 값이나 상태를 바꾸어 데이타베이스값을 추가하거나 수정하는 것

  • 많은 양의 데이터를 보낼 수 있다 (대용량 데이타 전송 가능)
  • 데이타를 body로 전송
    • 요청 데이타가 body에 있기 때문에 링크가 따로 없다 (북마크X)
  • 비멱등(non-idempotent) - 동일한 요청을 전송해도 응답이 항상 다를 수 있다
  • 생성, 수정, 삭제에 사용 가능하지만 수정과 삭제는 다른 메소드를 사용하는 것이 좋다
    • 생성은 POST
    • 수정은 PUT or PATCH
    • 삭제는 DELETE
  • GET요청처럼 URL에서 바로 데이타를 볼 수는 없지만 body를 열어서 내용을 볼 수 있다 (보안 필요)

GETPOST
URL에 데이터 노출노출O바디에 담겨있어 URL엔 노출X
URL예시http://localhost/getexample?id=jehong&password=secrethttp://localhost/postexample
데이터가 포함되는 위치Header에 데이타 포함Body에 데이타 포함
북마크 가능 여부북마크O북마크X
데이타 전송 길이 제한제한O대용량 데이타 전송 가능
캐싱 가능 여부캐싱O캐싱X
멱등(동일한 요청에 동일한 응답)동인한 요청에 동일한 응답동일한 요청에 다른 응답
profile
개발기록
post-custom-banner

0개의 댓글