HTTP의 GET방식, POST 방식

David's Data Science·2021년 9월 27일
0

HTTP(Hyper Text Transfer Protocol):

HyperText는문서가 하이퍼링크를 통해 다른문서로 접근할 수 있는 text를 의미하는데, 이러한 텍스트 문서를 웹 상에서 사용햐기 위한 규약(protocol)이다. 현재는 비디오, 이미지, 음성 등 모든것이 가능하다.

규약(Protocol)

규약은 WEB의 사용자가 점차 많아짐에 따라, client 및 server에 대한 요청과 응답의 표현방법을 통일함으로써 통신을 원활히 하기 위한 것이다.

(Protocol은 사업영역에 따라 다르게 정의되는데, 이번 포스팅에서는 네트워크 영역에서의 Protocol로써 정리한다.)

WEB과 정보 통신기술이 발전하면서 세계 곳곳에서 통신을 이용하는데, 규약이 없으면 여러가지 표현방법들도 모두 달라지기에 통신에 문제가 많아지기 때문에 이를 원활히 하기 위해 만들어진 것.
그 용도에 따라 여러 가지가 나뉘눈데, 메일을 주고받기 위한 POP3/SMTP/IMAP, 파일전송을 위한 FTP 등과 같이 HTTP도 WEB의 컴퓨터가 서로 소통하기 위한 기술적 통신규약이다.

HTTP의 메소드 (CRUD):

이외에도 다른 Method들이 있지만, HTTP의 대표적 CRUD Method는 아래와 같다.

POST: 리소스를 생성하고자 할 때 (CREATE)
GET: 리소스를 조회하고자 할 때 (READ)
PUT,PATCH: 리소스를 업데이트 하고자 할 때(UPDATE)
DELETE: 리소스를 제거하고자 할때(DELETE)

GET방식

HTTP의 GET메소드는 위와 같이 리소스를 조회할 때 사용한다. 클라이언트에서 서버에 리소스의 조회를 요청하는 메소드.

Get방식의 작성

  • URL 뒤에 ?를 붙인뒤 Query string을 넣는 형식 - 각 파라미터를 &로 연결을 한다.
    https://comic.naver.com/genre/bestChallenge? m=main&order=StarScore&page=2
    m=main / order=StarScore / page=2
    위 예시에서 메인/별정순/2페이지 세 가지 파라미터를 &로 이어서 URL을 형성한 것을 알 수 있다.
  • 예시와 같이 GET방식으로 작성된 경우 해당 파라미터들이 가급적 직관적일 수록 좋다.
  • 웹 캐시가 리소스 복사본을 반환하는 방식으로 이루어진다.

Get방식의 특징

  • 브라우저에 기록이 남는다
  • 캐싱이 되기 때문에 북마크가 될 수 있고, 재요청 시 더 빠르게 가져온다.
  • 요청에 길이 제한이 될 수 있다 - 브라우저마다 다르다.
  • 관련 요청정보가 파라미터에 노출되기 때문에 보안이 필요한 중요한 정보를 다루면 안된다.
    ex) 비밀번호 관련 내용, 개인정보 관련 내용 등

POST방식

HTTP의 POST메소드는 리소스를 생성하고, 추가하기 위한 요청을 보낼 때 사용하는 메소드. 클라이언트에서 서버의 내용을 업데이트 요청하는 메소드.

POST방식의 작성

  • DATA를 PARAMETER로 표기하지 않고, BODY에 넣어서 서버에 요청을 하게 된다.
    BODY에 넣음으로써 메시지 길이 제한이 없다.
  • Content-type 헤더 필드를 꼭 추가기입하여 명시해야 한다.

POST방식의 특징

  • GET과 달리 URL에 변수가 노출되지 않는다. (최소한의 보안)
  • 요청 후 기다리는 시간이 존재한다.
  • 캐싱할 수 없기에 매번 새로운 페이지를 읽는 속도와 같다.

HTTP METHOD인 GET과 POST의 용도를 잘 이해하고 사용해야한다. POST방식이 URL상에 변수가 노출되지 않을 뿐이지, 보안이 더 뛰어나다고 할 순 없기에 더욱 중요한 정보는 암호화를 해야한다.

profile
데이터 사이언티스트가 되고싶은 David입니다.

0개의 댓글