GET과 POST는 HTTP 프로토콜에서 서버와 클라이언트 간 통신에 활용되는 요청(Request) 메소드이다.

 

GET과 POST의 차이

  • GET은 URL의 뒤에 ?를 붙여 전달한다. 전송량에 제한이 있고, 사용자에게 데이터가 노출됩니다.
  • POST는 HTTP body에 포함하여 전달합니다. 전송량에 제한이 없고, 사용자에게 데이터가 보이지 않습니다. (암호화는 안됨)
  • 둘 다 암호화가 따로 없어서 보안에는 둘 다 취약하다.
  • 서버의 값이나 상태를 변경하는 경우에는 POST로, SQL 쿼리의 SELECT와 같은 단순 조회의 경우 GET을 사용

 

GET

  • GET 가져오는 , 서버로부터 정보를 요청하기 위해 사용
  • URL에 데이터를 포함시켜 요청한다. (기존의 URL 뒤에 ?를 붙여 구분)
  • 전송하는 길이에 제한이 있다. 
  • URL에 데이터가 노출되어 보안에 취약하다.
  • URL 형식에 맞지 않는 데이터는 인코딩(Encoding)이 반드시 필요하다.(한글이나 특수문자를 전송할 경우)
  • 캐싱할 수 있다.

→ 만약 웹 페이지 게시판 수정, 삭제 기능을 GET으로 구현한다면 캐싱으로 의도치않게 글이 수정, 삭제 될 수 있다. 때문에 주로 서버에 데이터를 요청(Select)할 때 사용

ex) 게시판 게시물 조회 

 

+ 캐싱(Caching)이란

캐싱이란 한번 접근 후, 또 요청할 시 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것입니다.

 

POST

  • POST 수행하는 ,  데이터 추가/수정하기 위해 사용
  • 데이터를 HTTP body에 담아 전달한다.
  • GET과 달리 URL에 데이터가 노출되지 않는다. BUT 암호화가 되지는 않음
  • 전송하는 길이에 제한이 없다.
  • 캐싱할 수 없다.

→ 주로 서버에 데이터를 전달하기 위해 사용

반응형

'cs지식 > CS' 카테고리의 다른 글

[CS] 쿠키(Cookie)와 세션(Session) 차이  (0) 2021.05.26

▶ 쿠키와 세션을 사용하는 이유

  • HTTP의 비연결성(Connectionless)과 비상태성(Stateless)을 보완하여 서버가 클라이언트를 식별하기 위해 사용합니다.
  • HTTP는 서버의 자원을 절약하기 위해 모든 사용자의 요청마다 연결과 해제의 과정을 거치기 때문에 연결 상태를 유지하지 않고(비연결성), 연결 해체 후에도 상태 정보를 저장하지 않습니다.(비상태성)  → 사용자를 식별할 수 없어 매번 새로운 사용자로 인식하게 됩니다. ex) 페이지를 이동할 때마다 로그인을 다시 해야 됨.

+ 비연결성(Connectionless) : 클라이언트가 요청(request) 한 후 응답(response)을 받으면 연결을 끊는다

+ 비상태성(Stateless) : 통신이 끝나면 상태를 유지하지 않는다.

 

 쿠키와 세션의 차이 -> 저장 위치, 보안, 속도

  • 가장 큰 차이점은 정보의 저장 위치입니다. 쿠키는 클라이언트에, 세션은 서버에 저장됩니다.
  • 보안면에서는 세션이 더 우수하며, 요청 속도는 쿠키가 세션보다 더 빠릅니다. 그 이유는 세션은 서버의 처리가 필요하기 때문입니다.
  • 쿠키는 클라이언트 로컬에 저장되기 때문에 변질되거나 스니핑 당할 우려가 있어 보안에 취약하지만 세션은 쿠키를 이용하여 sessionid만 저장하고 그것으로 구분해서 서버에서 처리하기 때문에 비교적 보안성이 좋습니다.
  • 쿠키와 세션은 비슷한 역할을 하며 동작 원리도 비슷합니다. 그 이유는 세션도 쿠키를 사용하기 때문입니다.

+ 세션을 사용하면 좋은데 왜 쿠키를 사용하는가?

-> 세션은 서버의 자원을 사용하기 때문에 사용자가 많을 경우 소모되는 자원이 상당합니다. 때문에 자원관리 차원에서 쿠키와 세션을 적절히 사용하여 서버 자원의 낭비를 방지하고 속도를 높일 수 있습니다.

 

▶ 쿠키(Cookie)

쿠키란

  • 클라이언트(브라우저) 로컬에 저장되는 Key와 Value로 구성된 String형태의 작은 데이터 파일
  • 쿠키의 구성요소 : 이름, 값, 유효시간, 도메인, 경로
  • 세션 관리 : 로그인, 접속 시간, 장바구니 등 서버가 알아야 할 정보들을 저장
  • 개인화 : 사용자마다 다르게 그 사람에 적절한 페이지를 보여줄 수 있다.
  • 트래킹 : 사용자의 행동과 패턴을 분석하고 기록한다

 

쿠키 사용 예

-> 사용자 편의를 위한 것, 지워져도 되고, 가로채이더라도 큰 지장이 없는 수준의 정보

  • 쇼핑몰의 장바구니 기능
  • ID 저장, 자동 로그인
  • 자동 완성, 팝업창 일주일간 다시 보지 않기
  • 최근 검색한 상품들을 광고에서 추천

 

▶ 세션(Session)

세션이란

  • 세션은 쿠키를 기반으로 하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리합니다.
  • 각 클라이언트에게 고유 세션 ID를 부여한다.
  • 보안면에서 쿠키보다 우수하다. -> 사용자에 대한 정보를 서버에 두기 때문에
  • 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다
  • 동접자 수가 많은 웹 사이트의 경우 서버에 과부하를 주게 되므로 성능 저하의 요인이 됩니다.

 

세션 사용 예

-> 사용자나 다른 누군가에게 노출되면 안 되는 중요한 정보

  • 로그인 유지
  • 보안상 중요한 작업을 수행할 경우

 

  쿠키(Cookie) 세션(Session)
저장위치 클라이언트 서버
저장형식 text Object
리소스(사용하는 자원) 클라이언트의 리소스 서버의 리소스
용량제한 클라이언트에 300개 쿠키 저장 가능
하나의 도메인 당 20개,
하나의 쿠키 당 4KB
제한없음
만료시점 쿠키 저장 시 설정
(설정 없을 시에는 브라우저 종료시 만료)
브라우저 종료 시 삭제
속도 세션보다 빠름 쿠키보다 느림
보안 세션보다 안좋음 쿠키보다 좋은
반응형

'cs지식 > CS' 카테고리의 다른 글

[CS] GET과 POST 비교  (0) 2021.05.26

+ Recent posts