웹 브라우저와 서버가 데이터를 주고받는 프로토콜
HTTP에 인증과 암호화를 적용해 보안을 강화시킨 통신 규약
HTTP에 인증서와 암호화를 적용시켜 보안을 강화하게 만드는 기술
HTTPS = HTTP + TLS
SSL은 구버전이며, 현재는 보안이 강화된 TLS 사용
서버가 클라이언트의 상태를 보존하지 않음
Client가 요청을 보낼 때마다 새로운 연결로 간주됨.Server는 이전 요청을 기억하지 않으며, 요청마다 필요한 모든 정보를 포함해야 함.Server는 Client가 로그인한 상태인지 자체적으로 기억하지 않음.Stateless는 클라이언트와 서버간의 통신에 필요한 모든 상태 정보들을 클라이언트에서 가지고 있다가 서버와 통신할때 데이터를 실어 보내는 것이라고 했다.
그래서 서버는 단순히 받아서 응답만 해주기 때문에 서버에 대한 부하가 현저히 줄어든다.
하지만 로그인 유지와 같은 상태는 싫으나 좋으나 stateful한 상태를 사용하여야 하는데, 그러면 서버에 부하가 생긴다.
그래서 stateless 특징을 유지하면서도 로그인 상태 유지를 가능하게 하기 위해,
대부분의 웹 어플리케이션에서는 웹 스토리지, 쿠키, JWT 토큰을 사용한다.
토큰은 클라이언트가 암호화된 로그인 정보들을 지니고 있다가 서버에 통신할때 넘겨줌으로써 내가 로그인 됬음을 인증하는 방식이다.
따라서, 특별한 일이 없다면 stateless를 지향해야하며 정말 필요한 경우에만 stateful를 해야한다.
한 번 통신이 이뤄지고 난 후에 연결이 바로 끊어짐

하나의 요청이 아닌 여러번 동일한 HTTP요청을 보냈을때 서버가 같은상태를 가지는것
- 멱등성을 가지는 메서드 :
GETPUTDELETE- 멱등성을 가지지 않는 메서드 :
POSTPATCH
데이터를 가져올 때 사용
GET요청을 하는것은 한번의 요청을 하는것과 같다.(멱등성 o)데이터를 생성할 때 사용
POST요청은 여러 새로운 리소스를 생성한다.(멱등성 x)업데이트하는 데이터의 전체를 보냄
{"a" : 1, "b" : 2}가 있을 때 b를 3으로 바꾼다고 했을 때 {"a" : 1,"b" : 3}으로 전체 데이터 전부를 보냄
업데이트하는 데이터의 일부만 보냄
{"a" : 1, "b" : 2}가 있을 때 b를 3으로 바꾼다고 했을 때 {"b" : 3}만 보냄
특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 것
서버가 요청을 잘 받았으며 해당 프로세스를 계속 이어가며 처리하는 것
서버가 요청을 잘 받았고 이를 기반으로 클라이언트에게 성공적으로 데이터를 보낸 것
200 OK : 요청 성공 (body에 데이터를 담아 보냄)201 Created : 요청 성공 + 새로운 리소스 생성204 no content : 요청 성공 (body에 보낼 데이터가 없음)서버가 클라이언트의 요청에 대해 완료를 위해 추가 작업 조치 필요
클라이언트가 요청한 페이지를 제공할 수 없거나 클라이언트의 요청이 잘못되어 결과적으로
요청을 처리할 수 없음
400 Bad Request : 서버가 클라이언트 요청을 이해할수 없음401 Unauthorized : 클라이언트의 인증이 되지 않음404 Not Found : 요청받은 컨텐츠를 찾을 수 없음서버가 클라이언트의 요청을 처리하지 못하는 상태
500 Internal Server Error : 서버에 오류 있음502 Bad Gateway : 게이트웨이 또는 프록시서버가 오류504 Gateway Timeout : 게이트웨이 또는 프록시서버가 정해진 Timeout 시간동안