HTTP와 그 메서드

백PM ㅣ 2022. 9. 28. 01:53

HTTP (Hyper Text Transfer Protocol) ?

  • 클라이언트(이용자) - 서버 (서비스제공자) 간 데이터를 주고받을 수 있는 통신규약을 말한다.

클라이언트가 서버에 데이터를 요청하면 서버는 그에 맞는 응답을 클라이언트에 전송한다.

  • TCP/IP의 Application 최상위 계층에서 네트워크 서비스를 제공한다.
  • 웰 노운 포트(well-known port) 인 80번 노트를 사용하여 통신한다.
  • HTTP/1.1에서 발전되어 HTTP/2, HTTP/3까지 등장했다.

HTTP 메서드

클라이언트가 서버에 요청할 수 있는 행동들을 말한다. 대략 8가지가 있다.

  • GET : 서버에 있는 데이터를 그대로 보내줄 것을 요창한다.
  • POST : 서버에 데이터를 전달하고 그에 맞는 데이터를 보내줄 것을 요청한다.
  • PUT : 서버에 데이터를 수정할 것을 요청한다.
  • DELETE : 서버에 데이터를 삭제할 것을 요청한다.
  • PATCH : 데이터의 일부분만을 수정할 것을 요청한다.
  • HEAD : 데이터의 본문이 아닌 헤더정보를 보내줄 것을 요청한다.
  • CONNECT : 중계 연결을 요청한다.
  • OPTION : 서버가 허용하는 메서드를 알려줄 것을 요청한다.

GET과 POST 메서드

위 HTTP 메서드 중 가장 많이 쓰이는 메서드는 GET과 POST이다.

둘다 서버에 데이터를 보내줄 것을 요청하지만 서로 차이점이 있다.

1. GET방식

  • 서버에 있는 데이터를 그대로 가져온다.
  • 항상 같은 데이터를 받는다(멱등성-Idempotent 을 갖는다).
  • 요청시 요청내용을 Body에 담지 않고 Header의 일부분인 URL에 덧붙여서 전달한다.
  • 캐싱이 가능해 한번 요청하면 이후 동일한 요청을 할 때 추가적으로 요청하지 않고 캐싱해놓은 것을 사용한다
  • 요청데이터 제한이 있다.
  • 속도가 빠르다.

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

2. POST방식

  • 클라이언트가 요청한 대로 서버가 생성한 데이터를 가져온다.
  • 다양한 데이터를 받는다(비멱등성-Unidempotent 을 갖는다).
  • 요청내용을 Body에 담아서 전달한다.
  • 캐싱할 수 없다.
  • 종류와 용량의 제약이 없다.
  • 속도가 느리다.

예) http://localhost:3000/login

GET과 POST의 보안성?

GET방식은 전달정보가 URL에 드러나고, POST방식은 Body에 전달정보가 숨겨져있으므로 POST방식이 상대적으로 보안이 뛰어나다 할 수 있다. 그러나 POST방식도 크롬 개발자툴 등의 프로그램을 이용하면 타인이 정보를 열람할 수 있는 것은 마찬가지이므로 둘다 암호화가 필요하다.

'네트워크' 카테고리의 다른 글

HTTPS 특징  (0) 2022.09.28
web.xml ?  (0) 2022.09.28
HTTP 상태코드 표  (0) 2022.09.28
쿠키와 세션 +캐시  (0) 2022.09.28
OSI 7계층  (1) 2022.09.28