devych

about everything

Http Post&Get Req

2019-02-25 devychhttp

HTTP : hyper text transfer protocol

클라이언트와 서버 간 데이터를 주고 받을 수 있는 프로토콜

http.methods = [‘get’, ‘post’, ‘put’, ‘delete’, …]

http.methods[get] = ‘특정 리소스를 가져오도록 요청하는 메소드’

http.methods[post] = ‘데이터를 서버로 제출하는 용도 & 서버 상태 변화시킴’

http.methods[put] = ‘post와 비슷, 연속적 요청시 같은 효과 & 기존 데이터 교체 용도’

http.methods[delete] = ‘리소스 삭제 요청시 사용’

Http response status codes

2xx : 요청 성공

3xx : redirect

4xx : Client errors

403: 컨텐츠 접근 권한 없음

404: not found

5xx: 서버가 바보다!

그래서 Get이 뭘까요?

http get method는 RFC2616 section9.3에 의거하여 만들어진 method로 서버로부터 정보 조회를 위해 존재한다. 또한 get은 url 뒤에 ‘?’ 뒤로 입력한 데이터 값을 함께 서버로 요청한다. 여러 data를 한번에 요청할때는 ‘&’기호를 통해 서로 엮어준다. 또한 url에 붙기 때문에 길게 쓰기에는 한계가 있고 불편하다.

그럼 Post랑 뭐가 다른데요?

post는 get 방식과 달리 요청시 url뒤에 붙는게 따로 없다. post는 입력한 데이터를 body안에 넣어서 전송한다. body에 전송하는 데이터를 숨기기 때문에 양이 많아져도 Get과 달리 한계가 있을 것 같지않다.

하지만 무엇보다 중요한 차이

  • Get은 리소스를 요청하는 것!

리소스를 생성/변경하지 않기때문에 동일한 요청을 여러번 전송하더라도 동일한 응답이 돌아옵니다!

  • post는 리소스를 생성 및 변경하기 위한 것!

리소스를 생성/변경하기 때문에 동일한 요청을 여러번 하더라도 응답이 다를 수 있습니다!