티스토리 뷰

Computer Science/Network

HTTP의 GET과 POST

유자애옹 2021. 9. 9. 14:25

GET과 POST는 HTTP 메서드로 클라이언트에서 서버로 무언가를 요청할 때 사용한다.

그렇다면 각 방식의 특징과 GET과 POST의 차이점은 무엇일까?

 

GET

 

  • 클라이언트에서 서버로부터 정보를 조회하기 위해 설계된 메서드
  • 요청하는 데이터가 HTTP Request Message의 Header 부분에 URL로 담겨서 전송됨
  • URL 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터로 포함되어 전송되는데 이 부분을 쿼리 스트링(query string)이라고 한다
    예시) http://www.example-url.com/resources?name1=value1&name2=value2
  • URL에 데이터가 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다
  • 데이터가 URL에 그대로 노출되므로 보안이 필요한 데이터에 대해서는 GET 방식은 적절하지 않다
  • GET 방식의 요청은 브라우저에서 Caching 할 수 있어서 기존에 caching 되었던 데이터가 응답될 가능성이 있다

 

POST

 

  • 클라이언트에서 서버로 리소스를 생성/변경하기 위해 설계된 메서드
  • 따라서 전송해야될 데이터를 HTTP Request Message의 Body에 담아서 전송
  • HTTP Message의 Body는 길이의 제한이 없기 때문에 대용량 데이터 전송 가능
  • 데이터가 Body로 전송되고 내용이 보이지 않기 때문에 GET보다 보안적인 면에서 안전하다고 생각할 수 있지만 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우 반드시 암호화가 필요함

 

GET과 POST의 차이

 

GET은 Idempotent, POST는 Non-idempotent하게 설계되었다.

 

💡 멱등성 (Idempotent)
수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질

 

  • GET은 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아오기 때문에 주로 조회를 할 때 사용
  • POST는 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있기 때문에 서버의 상태나 데이터를 변경할 때 사용

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함