GET과 POST

Lys·2023년 10월 10일
0

네트워크

목록 보기
8/19

사용자가 홈페이지로 이동하기 위해 URL을 입력하면 서버 내부에서는 사용자의 요청에 응답하기 위해 처리 해주어야 된다. 이 때 사용자가 서버로 요청을 보내는 방식인 대표적인 HTTP Method에는 GET방식과 POST 방식이 있다.


HTTP Method란?
사용자가 서버의 요청의 목적 및 종류를 알리는 수단이다. 종류로는 GET,POST,PUT,DELETE 등이 있디.

GET

  • 어떠한 정보를 가져와 데이터를 조회하기 위해 사용되는 방식이다.
  • 쿼리 스트링(QueryString)통해 전달하기 때문에 주소창에 전달 값이 노출된다.
    -- 쿼리 스트링(QueryString)이란?
    • URL 뒤에 전달하는 파라미터이다.
    • URL + ? + 데이터 이름=값 형태로 표현된다.
    • 데이터가 노출되기 때문에 보안이 취약해 중요한 정보를 다루면 안 된다.
  • URL 길이가 제한이 있기 때문에 전송 데이터 양이 한정 되어 있다.
  • 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있다.
  • 브라우저에 기록이 남는다.
    (레지스터 : CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 다목적 공간이다.)
  • URL 형식에 맞지 않는 파라미터 이름이나 값은 인코딩하여 전달해야 된다.
    0( '/', '&', '=' 등의 문자를 값으로 사용할 땐 인코딩해서 요청해야 된다.)
  • 멱등(idempotent)한다.

POST

  • 사용자가 서버로 데이터를 전송해 리소스를 추가하거나 생성하기 위해사용 되는 Method이다.
  • URL에 데이터를 노출하지 않고 요청한다.
    (하지만 개발자 도구를 통해 요청 내용을 확일 할 수 있기 때문에 민감한 정보는 암호화 하여 전송해야 된다.)
  • 전송해야 될 데이터를 HTTP 메세지의 Body에 담아서 전송하기 때문에 HTTP 메세지에 Body가 존재한다.
  • 요청 헤더의 Content-Type에 콘텐츠 타입을 명시한다.
    -- Content-Type란?
    • 보내는 자원의 형식을 명시하기 위해 헤더에 실리는 정보이다.
    • Content-Type에 따라 데이터를 받는 측에서 데이터를 어떻게 처리해야 될지 판단한다.
  • 캐시되지 않는다.
  • 브라우저 기록에 남지 않는다.
  • 데이터들을 Body에 담기 때문에 길이에 대한 제한이 없다.
  • 멱등(idempotent)하지 않는다.

캐시(Cashe)란

  • 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.
  • 속도 향상을 위해 주로 사용한다.
  • 같은 데이터에 반복적으로 접근할 때 사용한다.

멱등(idempotent)이란?

  • 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
  • GET은 리소스를 조회한다는 점에서 여러번 요청하더라도 응답이 똑같고 POST는 리소스를 새로 생성하거나 업데이트 할 때 사용되기 때문에 멱등하지 않는다.

GET 방식의 사용

  • 검색기능 : 사용자가 검색어를 입력하면 서버에서 요청을 받아 처리 후 검색 결과를 브라우저에 보여준다.
  • 페이지 이동 : 브라우저에서 다른 브라우저로 페이지 이동시 사용한다.
  • 쿠키와 같은 작은 데이터 전송 시

POST 방식의 사용

  • 회원가입,로그인
    (사용자가 입력한 회원 정보를 서버로 전송하여 처리한다.)
  • 게시글 작성: 사용자가 입력한 내용을 서버에 전송하여 작성한다.
  • 파일 업로드 : 사용자가 업로드한 파일을 서버에 전송하여 저장한다.

GET 방식과 POST 방식의 차이

GETPOST
데이터 전달쿼리스트링HTTP BODY
데이터 길이URL 길이에 제한이 있다.(2048자 이하)HTTP 요청 본문 크기에 제한이 있다.(2GB이하)
캐싱브라우저에서 자동으로 캐싱된다.브라우저에서 캐싱되지 않는다.
보안성낮다.높다.
북마크가능.불가능.
HTTP 응답코드200201

--200 : 서버가 요청을 성공적으로 처리했을 경우
--201 : 요청이 성공적이었으며 새로운 리소스가 생성 되었을 때

🙇‍ 참고 사이트 🙇‍

https://dev-coco.tistory.com/60
https://backendcode.tistory.com/230
https://cherry-forest.tistory.com/26

0개의 댓글

관련 채용 정보