IT/면접

Q. GET, POST 방식의 차이점

뀨뿌뀨뿌 2023. 8. 15. 15:28

❓목적

- GET
   데이터를 가져와서 보여주는 것에 초점을 맞춤
   주로 데이터를 조회할 때 사용

- POST
   서버에 데이터를 제출하여 저장, 업데이트, 처리하는 데 사용함

❓데이터 전송위치

- GET
   데이터가 URL의일부로 전송됨  ex) http://example.com/page?name=rose&age=26

- POST
   데이터가 요청 본문에 포함되어 전송됨
   URL에 직접적으로 보이지 않음

❓데이터 길이

- GET
   URL에 데이터가 첨부되므로, 길이에 제한이 있음
   대부분의 웹 브라우저나 서버에서 URL길이에 제한을 둠

- POST
   데이터 길이에 별다른 제한이 없음(서버의 설정에 따라선 제한이 될 수 있음)

❓보안

- GET
   URL에 데이터가 첨부되므로, 민감한 정보(비밀번호 등)를 전송하는 것은 안전하지 않음
   브라우저 히스토리에 URL이 저장되기 때문에 데이터가 기록될 수 있음

- POST
   데이터가 요청 본문에 있어 URL에서 직접적으로 보이지 않아 GET보다는 더 안전함
   그러나 암호화되지 않은 상태에서 POST 요청을 전송하는 것은 안전하지 않음
   HTTPS와 같은 암호화된 연결을 사용하여 데이터를 보호하는 것이 좋음

❓Idempotent(멱등성: 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질)

- GET
   멱등성이 있음
   같은 GET 요청을 여러 번 수행해도 서버의 상태나 결과가 변경되지 않아야 함

- POST
   멱등성이 없음
   같은 POST 요청을 여러 번 수행하면 서버의 상태나 결과가 변경될 수 있음

❓캐싱

- GET
   결과를 캐시할 수 잇음

- POST
   일반적으로 캐시되지 않음

❓북마크 및 공유

- GET
   URL이 요청에 모든 정보를 포함하므로, 북마크하거나 공유하기 쉬움

- POST
  요청 본문에 데이터가 포함되어 있기 때문에 북마크나 공유하기 어려움

GET은 데이터 조회에 초점이 맞춰져 있어, 웹 페이지의 정보를 가져오거나 특정 정보를 검색할 때 주로 사용됩니다. 이 때, 조회에 필요한 정보는 URL에 직접 포함되므로 주소창에서 확인이 가능합니다. 하지만, 이러한 방식은 URL 길이의 제한과 민감한 정보의 노출로 인해 보안 문제가 발생할 수 있습니다.
반면, POST는 서버에 데이터를 제출하거나 업데이트할 때 주로 사용되는 방식입니다. 전송되는 데이터는 요청 본문 안에 포함되기 때문에 URL에서는 보이지 않아 보안적인 측면에서 더욱 우수한 특성을 보입니다. 그럼에도 불구하고, 암호화되지 않은 상태에서의 전송은 위험할 수 있기에, HTTPS와 같은 암호화된 연결을 사용하는 것이 좋습니다.
이렇게 GET과 POST는 각각의 특징과 사용 용도에 따라 적절하게 활용됩니다.