패스트캠퍼스의 'Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기' 강의를 듣고 정리한 내용입니다.
HTTP
- HyperText Transfer Protocol
- HTTP란,
웹상에서 데이터를 주고받기 위한 프로토콜
- 웹 문서를 주고받기 위하여 사용할 수 있다.
- 웹뿐만 아니라 모바일 앱, 게임 개발에서도 다양한 목적으로 사용되곤 한다.
HTTP 메서드
- 클라이언트 요청(request)의 목적에 따라 적절한 HTTP 메서드를 사용한다.
- 어떤 식으로 데이터를 주고 받을지에 대한 일종의 약속을 명시한 정보
대표적인 HTTP 메서드
HTTP 메서드 | 설명 | 사용 예시 |
---|
GET | 데이터 조회를 요청 | 특정 페이지 접속, 정보 검색 |
POST | 데이터 생성을 요청 | 회원가입, 글쓰기 |
PUT | 데이터 수정을 요청 | 회원 정보 수정 |
DELETE | 데이터 삭제를 요청 | 회원 정보 삭제 |
- 웹 사이트가 완전히 따르지 않는다고 해도, 클라이언트 프로그램과 웹서버 프로그램에서 동일한 형식을 따른다면 동작하는 경우가 있다. 데이터 삭제를 요청할 때 DELETE가 아닌 POST 방식을 사용하도록 웹서버가 개발되어 있을 수도 있다. 이 땐 클라이언트가 적절한 양식을 지켜주기만 한다면, 웹서버에서는 그러한 정보를 목적에 맞게 처리할 수도 있다. 하지만 기본적인 규격은 위의 표이다.
HTTP 메서드 사용 예시
- 특정한 웹 사이트에 접속하면, 기본적으로 GET 방식으로 호출을 진행한다.
- 상태 코드(status code)를 이용해 본인의 요청에 대한 결과를 응답 받을 수 있다.
- 웹 사이트는 대개 HTML, JavaScript, CSS 코드를 반환하며 웹 브라우저는 이를 화면에 출력한다.
HTTP 상태 관리와 세션
- HTTP는 상태를 저장하지 않는다.(Stateless)
- 클라이언트는 HTTP로 서버에 연결한 뒤에, 응답을 받으면
연결을 끊어버린다.
👉🏻 서버 입장에서는 접속 유지에 대한 요구가 적어, 불특정 다수를 대상으로 하는 서비스(웹페이지)에 적합
- 상품 확인 👉🏻 장바구니 👉🏻 결제의 과정이 시스템적으로 상태 정보로 기록되지 않는다.
- 하지만, 세션을 이용해 원하는 기능이 수행되도록 한다.
Keep Alive 기능
- HTTP의 무상태성을 보완하기 위한 기능
- HTTP 1.1 버전부터 keep-alive를 지원
- 하나의 웹 사이트에 방문하면 대개 수십 개의 파일(CSS, 이미지, HTML, JS)를 제공한다.
- TCP 통신 과정에서 연결 수행/연결 해제 과정에서 리소스가 많이 소요된다.
- keep-alive는 이런 파일을 하나씩 받기 위하여 매번 연결을 맺고 끊는 것을 방지한다.