HTTP 프로토콜 질문이 많길래 또 써봅니다.
HTTP 프로토콜은 서버 / 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
HTTP는 Application 레벨의 프로토콜로, TCP/IP 레벨 위에서 작동한다.
HTTP는 상태를 가지고 있지 않은 프로토콜이며, Method / Path / Version /Headers/ Body 등으로 구성된다.
여기까지 설명을 하면 또 GET 과 POST의 차이에 대해 물어보는데,
GET은 URL에 파라미터 자체가 보여지고, 따라서 body 내에 값이 실리지 않는 코딩이 가능하다.
POST는 body 쪽에 데이터를 실어서 보내기 때문에 길이 제한 없이 데이터를 보낼 수 있다.
기본적으로 HTTP Header 쪽에는 GET이 DEFAULT 이기 때문에 POST 사용 시에는 명시를 해줘야 한다.
사실 POST로 보내도 데이터가 보이긴 하는데 육안으로는 URL이 안 보이니까 GET 형태보다는 낫다고 한다.
GET 방식은 한 번 가져온 정보를 재 접근해서 사용하는 것이 가능해서 (캐싱 처리)
POST보다 속도가 빠르다고 한다.
POST는 보통 FORM에서 SUBMIT해서 정보를 전달하는데, 이게 ONCLICK 할 때 자동으로 Submit 되는 CSS 적인 오류가 있었어서 실무에서는 조금 고생했었다.
GET 방식은 서버의 리소스에서 데이터를 요청할 때 보통 사용하고, (SELECT와 비슷하다.)
POST 는 서버의 리소스를 새로 생성하거나 업데이트 할 때 사용한다. (CREATE와 비슷하다.)
REST 가 뭐냐는 질문을 하면 REST는 Representational State Transfer 의 약자로, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것
참조 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
PS.
사실 고전 예제인 홈페이지 만들기 할 때는 굳이 GET 방식을 거의 안 사용해서 만들었던 것 같다.
지금 생각하면 메뉴 이동 하는 것도 다 POST 형태로 만들어서 URL이 하나로 고정된 것은 불편한 것이라는 생각이 든다...
비동기로 만들어서 뒤로 가기 기능도 없었던 추억의 홈페이지 만들기.
참조 :
https://brilliantdevelop.tistory.com/33
댓글
댓글 쓰기