2022. 12. 20. 23:42ㆍWeb/Network
웹 서비스 개요
전세계적으로 TCP, UDP, SCTP 포트 80으로 지정
웹 브라우저는 http 또는 https 서비스에 지정된 포트를 통해 서버와 연결 시도
웹 서버와 연결이 되면 클라이언트의 정보 요구에 대해 서버가 웹 문서 회신
서버가 전송한 문서 내용은 클라이언트의 웹 브라우저를 통해 사용자 화면에 표시
사용자 요구마다 연결 설정과 해제 반복
클라이언트-서버 모델
URL : 서버의 자원 명칭. 사용하는 프로토콜, 서버의 호스트 이름, 서버 내부의 파일 경로명으로 구성
HTTP : 클라이언트의 요청과 서버의 응답 정보를 전송하기 위한 목적으로 구현된 프로토콜
1. 사용자가 웹 브라우저에게 웹 서버의 URL 주소 입력
2. 웹 브라우저가 DNS 서버에게 웹 서버의 호스트 이름을 IP 주소로 변경 요청
3. 웹 브라우저가 < IP 주소 + 포트 80번>의 웹 서버와 TCP 접속 시도
4. 웹 브라우저가 웹 서버에게 최초 화면을 위한 GET명령 전송
5. 웹 서버가 웹 브라우저에게 요청한 웹 문서를 회신
6. 웹 브라우저와 웹 서버 사이의 연결 해제
7. 웹 브라우저가 사용자 화면에 웹 문서를 출력
APM
Apache : 웹 서버 프로그램
PHP : 유닉스/리눅스 환경에서 지원되며, HTML 언어의 기능을 보강
MySQL : 데이터베이스 기능 지원
HTTP 프로토콜
웹 브라우저는 URL을 이용 원하는 자원 표현
HTTP 메소드를 이용하여 데이터를 요청하거나, 회신
비상태(stateless) 연결 : 요청과 응답 이후, 연결이 끊어지므로 비상태 프로토콜
요청 메시지
응답 메시지
CGI(Common Gateway Interface)
HTML로만 웹 문서를 작성하는 경우 서버의 정보만을 일방적으로 받아들이는 단방향 정보 흐름
사용자가 입력하는 정보에 따른 처리 기능 제공 필요
독립된 개발과 컴파일, 개별 프로세스로 처리하는 부담 때문에 스크립트 언어 선호
HTTP 프로토콜 역사
HTTP/0.9 : 요청은 단일 라인으로 구성하고, 가능한 메서드는 GET이 유일
HTTP/1.0 : 헤더 개념 도입, 응답에 상태 코드 전송
HTTP/1.1 : 연결 재사용, 파이프라이닝, 청크된 응답 지원, 컨텐츠 협상 도입
HTTPS : TLS/SSL 상에서 HTTP 동작
HTTP/2 : 이진 프로토콜, 다중화(병렬), 오버헤드 제거, 헤더 압축, 서버 푸쉬
Java Script
Ajax : 서버와 클라이언트가 비동기적으로 데이터를 교환할 수 있음
JQuery : Dom을 더욱 쉽게 제어
V8 자바 스크립트 엔진 : 서버에서만 수행되던 로직이 클라이언트로 이동
Node.js : 자바 스크립트가 브라우저 이외의 환경에서도 동작할 수 있도록함
SPA 프레임 워크 : Angular, React, Vue.js, Svelte
* 쉽게 배우는 데이터 통신과 네트워크(3판) 책을 바탕으로 작성하였습니다.
https://product.kyobobook.co.kr/detail/S000061352064