CS

GET과 POST 방식

DongSup 2022. 11. 13. 19:12

 

 

 

 

 

GET ?

 

 

 

클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 Method

GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링 (query string) 이라고 부름

Body 부분이 비어있고 헤더에 Body의 콘텐츠 타입을 명시하는 Content-Type 헤더 필드도 적지 않음

 

 

http://localhost:3000/login?id=admin&pw=1234

 

 

위와 같이 URL뒤에 쿼리 스트링(Key와 Value)을 붙이고 HTTP 패킷의 헤더에 포함해서 서버에 데이터를 요청함

서버에서는 id 와 pw 라는 파라미터 명으로 각각 admin 과 1234 의 파라미터 값을 전달 받을 수 있음

 

 

쿼리스트링으로 데이터를 표현하면 중요한 값들(admin 과 1234)이 노출되기 때문에 보안에 문제가 생길 수 있음

그렇기 때문에 GET방식은 게시판의 게시물, 목록 조회와 같은 간단한 데이터 요청을 할 때 적합

 

 

+

 

  • 캐싱이 가능 
  • POST 방식보다 상대적으로 전송 속도가 빠름 
  • 전송하는 데이터양에 한계가 있음 (브라우저마다 GET 요청 길이 제한 존재) 
  • 브라우저 히스토리에 기록이 남음

 

 

캐싱(Caching) ?

 

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

 

 


 

 

 

POST ?

 

 

 

클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용 되는 Method

전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 보냄 ( body 의 타입은 Content-Type 헤더에 따라 결정 )

GET에서 URL 의 파라미터로 보냈던 id=admin&pw=1234 가 body에 담겨 보내짐

 

 

GET처럼 데이터가 외부적으로 드러나는건 아니라서 보안이 필요한 부분에 많이 사용됨

보통 HTML form 을 통해 서버로 전송됨

 

 

+

 

  • 데이터들이 URL에 노출되지 않기 때문에 GET 방식보다 상대적으로 보안적 
  • 데이터들을 Body에 담기 때문에 서버로 보내는 데이터의 양은 제한 없음 
  • URL에 데이터가 노출되지 않으므로 캐싱 불가 
  • 클라이언트에서 인코딩, 서버에서 디코딩 
  • 요청받는 시간제한 존재 
  • 브라우저 히스토리에 기록이 남지 않음

 


 

 

 


 

Reference Path

 

 

[Network] GET방식과 POST방식의 차이

🚀 클라이언트는 인터넷 브라우저 주소창에 URL을 입력하고 서버는 클라이언트의 요청에 응답을 하여 웹페이지를 보여주게 됩니다. 이때 클라이언트가 서버로 보내는 데이터를 HTTP 패킷이라 하

cocoon1787.tistory.com