본문 바로가기

TIL

[HTTP][심화]HTTP메서드

728x90

비연결성

-클라이언트가 요청할 때에만 응답을 주고 서버는 연결을 끊는다.

-HTTP는 기본이 연결을 유지하지 않는 모델

-인반적으로 초단위 이하의 빠른 속도로 응답

-1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개가 되므로 매우 적음

-서버자원을 매우 효율적으로 사용할 수 있음

 

단점

-TCP/IP 연결을 새로 맺어야 함 -3way handshake 시간 추가

-웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, css, 추가 이미지등 수 많은 자원이 함께 다운로드

-지금은 HTTP 지속연결(Persistent Connections)로 문제 해결

-HTTP/2,HTTP/3에서 더 많은 최적화

 

HTTP 초기에는 요청에 대해 하나하나 연결하고 응답후 종료를하며 연결,종료를 낭비했지만 HTTP지속 연결로 바뀌면서 요청들을 연결할때 한번에 응답을 주고 응답이 다 끝나면 종료를 하는 식으로 변경이 됐음. 그마저도 h2,h3으로 변경되면서 응답속도를 확연하게 줄여줌

h3는 udp프로토콜을 쓰면서 연결속도 자체도 확연히 줄어듦

 

스테이스리스 -서버개발자들이 어려워하는 업무

선착순 이벤트를 할경우 같은시간에 맞추어 발생하는 대용량 트래픽을 감당하기 어려움 최대한 stateless하게 설계해서 대용량 트래픽이 올때 서버를 확 늘려서 감당할 수 있게만들면됨

 

 

HTTP메서드의 속성

안전

-호출해도 리소스를 변경하지 않는다.(해당 리소스만 고려)

Head는 Get과 같지만 body부분만 뺀것

멱등(Idempotent)

-한번 호출하든 두번호출하든 100번 호출하든 결과가 똑같다

-멱등은 외부 요인으로 중간에 리소스가 변경되는 것 까지 고려하지 않는다.

-멱등 메서드

   get : 한번이든 100번이든 같은 결과가 조회된다.

   put : 결과를 대체한다 따라서 같은 요청을 여러번해도 최종 결과는 같다

   delete : 결과를 삭제한다 같은 요청을 여러번 해도 삭제된 결과는 똑같다

   post : 멱등이 아니다 두번호출하면 같은 결제가 중복해서 발생할 수 있다.

멱등의 활용

-자동 복구 메커니즘

-서버가 Timeout 등으로 정상 응답을 못주었을 때 , 클라이언트가 같은 요청을 다시 해되 되는가 ? 판단근거

캐시가능(Cacheable)

-응답 결과 리소스를 캐시해서 사용해도 되는가?

-get ,head, post, patch 캐시가능

-실제로는 get, head정도만 캐시로 사용

   post, patch는 본문 내용까지 캐시키로 고려해야하는데, 구현이 쉽지않음

728x90

'TIL' 카테고리의 다른 글

[DB][SQL][NoSQL][ACID][트랜젝션]  (1) 2022.10.05
[HTTP]REST API  (1) 2022.10.04
[네트워크][HTTP]  (0) 2022.10.03
[네트워크][WEB]  (1) 2022.10.01
[네트워크] 웹 애플리케이션 작동원리  (0) 2022.10.01