HTTP란 ??
- HTTP는 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol)입니다.
- HTTP는 월드 와이드 웹(WWW)에 내재된 프로토콜입니다.
- HTTP는 인터넷에서 데이터를 주고 받을 수 있는 프로토콜입니다.
여기서의 프로토콜(Protocol)이란?
프로토콜은 규약을 의미하는데 ' 네트워크(관계망)에서 데이터를 주고받을 때 범세계적 공통의 협약을 말합니다. '
데이터를 보내고 받는 성격에 따라 프로토콜이 만들어졌는데 HTTP를 사용해야하고 파일을 주고 받을 때는 FTP, 메일은 SMTP, POP 등 전송 계층과 유형에 따라 다양하게 만들어져있습니다.
& HTTP의 특징 &
- 클라이언트 서버 구조
- 무상태 프로토콜(Stateless)
- 비 연결성(Connectionless)
- HTTP 메세지
- 단순함, 확장 가능
1. 클라이언트 서버 구조
클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 보내는 클라이언트 서버 구조로 이루어져 있습니다.
- Request Response 구조로 웹상에서 정보를 주고 받을수 있는 프로토콜입니다.
- 클라이언트는 서버에 요청을 보내고 응답을 대기
- 서버가 요청에 대한 결과를 만들어 응답
2. 무상태 프로토콜 – Stateless
Connectionless로 인해 서버는 클라이언트를 식별할 수가 없는데, 이를 Stateless라고 합니다.
클라이언트의 상태를 모른다는 것은 예를 들면 다음과 같습니다.
- 쇼핑몰에 접속
- 로그인
- 상품 클릭 -> 상세화면으로 이동
- 로그인
- 주문
- 로그인
- ....
즉, 사이트에 접속하고 로그인을 한 상태에서 사이트내의 정보나 사이사이마다 새로운 인증을 해야하는 번거로움이 발생하게 됩니다.
이런상태를 기억하기위해서는 어떠한 방법이 필요할까요 ?
답은 쿠키와 세션 , JWT 입니다. (https://knuckles6974.tistory.com/manage/newpost/type=post&returnURL=%2Fmanage%2Fposts%2F)
3.비 연결성 – Connectionless
HTTP는 서버에 연결후 요청에 응답을 받으면 연결을 끊어버리는 비연결성이라는 특성을 갖습니다. 이로인해 많은 사람이 웹을 이용하더 라도 실제 동시접속을 최소화하여 더 많은 유저의 요청을 처리 할 수 있습니다. 하지만 연결을 끊었기때문에 클라이언트의 이전상태를 알수없는 위의 2번의 상태( Stateless ) 되는 것입니다.
또한 HTTP는 정보를 text형식으로 주고받기 때문에 중간에 탈취당할경우 데이터유출이 발생할 수 있으므로 HTTP에 암호화를 추가한 프로토콜이 바로 HTTPS 입니다.
Reference :
https://victorydntmd.tistory.com/286
'database' 카테고리의 다른 글
MySQL 아키텍쳐 (0) | 2023.04.04 |
---|---|
JWT의 정의 (0) | 2022.06.09 |
쿠키와 세션 (0) | 2022.05.21 |
DNS란 무엇인가? (0) | 2022.05.07 |
로드밸런서(ELB) (0) | 2022.05.06 |