HTTP GET과 POST의 방식 및 차이

rimmz·2022년 7월 4일
0

🤔 | QnA

목록 보기
6/13
post-thumbnail

HTTP

웹상에서 클라이언트와 서버 간에 데이터를 주고 받을 수 있는 프로토콜

클라이언트가 HTTP 프로토콜을 통해서 서버에 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송

🔎 GET 방식

GET 이란?

클라이언트가 서버로 데이터를 요청하기 위해 사용되는 Method

	ex) 게시판의 게시물 조회

쿼리 스트링 (Query String)? 🧐
사용자가 웹에서 입력한 데이터를 전달하는 방법으로, key와 Value 형태이다. URL 주소 '?'(물음표) 구분자 뒤에 입력 데이터를 함께 제공하는 방법으로 사용되고 있다.
ex) 사용자 입력이란, 사용자가 검색한 키워드 또는 필터 조건 등 (클라이언트가 데이터의 일부분을 보여주고 싶을 때 표현할 수도 있다.)

  • URL에 변숙를 포함시켜 요청한다.
  • URL에 데이터가 노출되어 보안에 취약하다.
  • 데이터를 Header에 포함하여 전송한다.
  • 전송하는 길이에 제한이 있다.
  • GET 요청은 북마크 될 수 있으며, 브라우저 히스토리에 남는다.
  • 캐싱(Caching, 한번 접근 후 또 요청할 시에 빠르게 접근하기위해 레지스터에 데이터를 저장시켜 놓는 것)할 수 있다.

캐싱 Caching? 🧐
한번 접근 후 또 요청할 시에 빠르게 접근하기위해 레지스터에 데이터를 저장시켜 놓는 것

🔎 POST 방식

POST란?

클라이언트가 서버로 데이터를 전송해 리소스를 추가하거나 생성하기 위해 사용되는 Method

  • URL에 변수(데이터)를 노출하지않고 요청한다.
  • 데이터를 Body에 포함시킨다.
  • URL에 데이터가 노출되지않아서 기본 보안이 되어있다.
  • 전송하는 길이에 제한이 없다.
  • POST 요청은 북마크 될 수 없으며, 브라우저 히스토리에 남지 않는다.
  • 캐싱할 수 없다.

📌 GET과 POST 차이

사용 목적
GET은 데이터 내용이나 상태를 바꾸지 않고, 서버에서 데이터를 가져와서 보여줄 때 사용한다.
POST는 서버의 데이터의 값이나 상태를 바꾸기 위해 사용한다.

body의 유무

  • GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 Body가 없다.
  • POST 는 Body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 Body가 존재한다.

멱등

  • GET은 Idempotent, POST는 Non-idempotent하게 설계되었습니다.
  • GET은 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 한다
  • POST는 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있다.

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

💡 설계원칙에 따라 GET과 POST를 적절한 용도로 사용해야한다.


🔗 참고

https://cocoon1787.tistory.com/526
https://prinha.tistory.com/entry/HTMLWEB-HTTP-Method-GET-POST%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/
https://prinha.tistory.com/entry/HTMLWEB-HTTP-Method-GET-POST%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
#의욕넘치는#💻#✨#FE#💪🏻

0개의 댓글