728x90
⚡Http 개념, 역사, 특징
💯HTTP란?
💠HTTP는 하이퍼텍스트 전송 프로토콜(Hyper Text Transfer Protocol)
💠HTTP는 1989년~1991년 발명
💠HTTP는 월드 와이드 웹(WWW)에 내재된 프로토콜
💠HTTP는 인터넷에서 데이터를 주고 받을수 있는 프로토콜
💯프로토콜(Protocol)이란?
💠프로토콜은 규칙, 약속, 규약이다.
💠컴퓨터 네트워크(관계망)에서 데이터를 주고 받을 때 이런한 규칙을 통해 정보 교환이 가능하다.
💠컴퓨터 네트워크에서 데이터를 보내고 받는 성격에 따라 프로토콜이 만들어졌다.
💠웹문서를 주고 받을때 HTTP를 사용해야하고 파일을 주고 받을때는 FTP, 메일은 SMTP,POP등 전송계층과
유형에 따라 다양하게 사용된다.
포트번호 | 프로토콜 | 포드번호 | 프로토콜 |
20(데이터전송), 21(제어) | FTP | 53 | DNS |
22 | SSH | 80 | HTTP |
23 | Telnet | 443 | HTTPS |
25 | SMTP | 110 | POP3 |
💯웹 개발에서 HTTP의 중요성
💠클라이언트와 서버 통신은 모두 HTTP를 통해 통신함에 따라 필수 숙지!!!
💠CORS, CORB에러에 대한 디버깅을 위함
💯WWW(World Wide Web, 월드 와이드 웹)
💠WWW는 웹페이지를 네트워크 상에 이용하기 위한 구조로 1989년~1991년 발명
💠HTTP 프로토콜을 기조하여 데이터 통신
💠4가지 구조 : 첫째 - HyperText문서를 표현하기 위한 텍스트 형식의 언어 파일HTML
💠4가지 구조 : 둘째 - 인터넷 상에서 문서 등을 교환하기 위한 Protocol HTTP
💠4가지 구조 : 셋째 - 문서를 디스프레이 하기 위한 웹브라우저
💠4가지 구조 : 넷째 - HTTPD의 초기버전으로 문서에 접근하는 HTTp를 지원하는 서버
💯HTTP의 변천사

💠HTTP/0.9 : GET 메서드만 지원, HTTP 헤더 없음
💠 HTTP/1.0 : 메서드, 헤더 추가(⇒ HTML 이외 다른 파일 전송 가능)
💠 HTTP/1.1 : 현재 HTTP/1.1 주로 사용, 우리에게 가장 중요한 버전
💠 HTTP/2 : 성능 개선
💠 HTTP/3 : 진행중, TCP 대신에 UDP 사용, 성능 개선
💠HTTP/1.1, HTTP/2는 TCP 기반이며 HTTP/3는 UDP 기반 프로토콜이다.
💯HTTP 특징
💠클라이언트 서버 구조
💠무상태 프로토콜(Stateless)
💠비 연결성(Connectionless)
💠HTTP 메세지
💠단순함, 확장 가능
🖐️HTTP특징 1. 클라이언트 서버구조
💠클라이언트가 서버 요청시 서버는 그에 맞는 응답을 클라이언트로 보내는 서버 구조
💠Request Response 구조
💠클라이언트는 서버에 요청을 보내고 응답을 대기
💠서버가 요청에 대한 결과를 만들어 응답

🖐️HTTP특징 2. 무상태 프로토콜(Stateless)
💠HTTP에서 서버가 클라이언트의 상태를 보존하지 않는 무상태 프로토콜
💠서버가 클라이언트 상태 보존❌
💠장점 : 서버확장성이 높음(스케일 아웃)
💠단점 : 클라이언트가 추가 데이터 전송
🤩용어정리
❗용어정리 - 스케일 업(Scale-Up)
💠기존 서버의 사양을 업그레이드해 시스템 확장을 의미
💠CPU나 RAM을 추가하거나 고성능의 부품, 서버로 교환방식
💠하나의 서버를 업그레이드 하기 때문에 수직 스케일이라고 부름
❗용어정리 - 스케일 아웃(Scale-Out)
💠스케일 아웃은 서버를 여러 대 추가하여 시스템을 확장하는것을 뜻함
💠서버가 여러 대로 나뉘기 때문에 각서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필수
💠여러대의 서버로 나눠 시스템을 확장하기에 수평 스케일이라고 부름


🖐️HTTP특징 3. 비 연결성(Connectionless)
💠HTTP는 기본이 연결을 유지하지 않는 모델( HTTP 1.0기준으로 HTTP는 연결을 유지하지 않는 모델)
💠일반적으로 초 단위 이하의 빠른 속도로 응답
🔎트래픽이 많지❌ 빠른 응답을 제공할수 있는 경우 비연결성의 특징의 효율성⬆️
🔎동시다발적인 인입이 발생해도 실제 서버에서 동시 처리 요청이 작음
💠트래픽이 많고 큰 규모의 서비스를 운영할 때는 비연결성이 한계가 보임
⚡HTTP특징 : 무상태성
💯Stateful(상태유지) VS Stateless(무상태)
🖐️정리
💠 상태유지 : 중간에 다른 내역으로 바뀌면 안됨
( 중간에 다른 상태로 변경시 변경된 내역을 변경된 대상으로 상태 전달)
1번 서버가 장애가 난다면 상태 정보가 다 날아가기때문에 처음부터 다시 서버에 요청필요
💠무상태 : 중간에 다른 내역으로 바뀌어도 됨 ( 요청사항이 증가해도 서버를 투입하여 대응 가능 )
서버가 장애가 나도 다른서버에 상태값이 저장되어있음으로 새로 처음부터 요청이 아닌 다른 서버를
통해 동기화
⚡HTTP특징 : 비 연결성
💯연결성(Connection Oriented) VS 비 연결성(Connectionless)
🖐️연결지향(Connection Oriented) - 연결 유지 모델
💠 TCP/IP의 경우 기본적으로 연결을 유지
💠 연결을 유지하는 모델에서는 클라이언트가 요청을 보내지 않더라도 계속 연결을 유지
💠 이러한 경우 연결을 유지하는 서버의 자원이 계속 소모
🖐️비 연결성(Connectionless) - 연결을 유지하지 않는 모델
💠비 연결성을 가지는 HTTP에서는 실제로 요청을 주고 받을 때만 연결을 유지하고 응답을 주고나면
TCP/IP 연결 종료
💠이를 통해 최소한의 자원으로 서버 유지를 가능
Ref. https://brunch.co.kr/@swimjiy/47
Ref. https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-http-http%EB%9E%80-%ED%8A%B9%EC%A7%95-%EB%AC%B4%EC%83%81%ED%83%9C-%EB%B9%84%EC%97%B0%EA%B2%B0%EC%84%B1/
Ref. https://omoknooni.tistory.com/13

728x90
댓글