서버와 클라이언트 - 클라이언트 : 서버에게 자신이 원하는 요청을 보냄 - 서버 : 클라이언트에게 요청받은 서비스를 제공
HTTPD(Http Daemon) - 웹 서버 백그라운드에서 실행된 채 대기하고 있는 프로그램 - 요청이 들어오기를 대기하다가 실제로 요청이 들어오면 서버를 깨워줌
웹 컨테이너 - 클라이언트로부터 정적인 요청이 오면 서버에서 정적인 파일을 그냥 보내주면 됨 - 하지만 동적 요청이 오면 정적인 파일로부터 동적인 응답이 나올 수 없음, 그래서 웹 컨테이너 필요 - 동적인 데이터 요청(DB 접근 연산)이 들어왔을 때 서버가 연산을 요청하는 곳 - 이후 연산이 끝나면 정제된 데이터로 서버에 돌려줌
WAS(Web Application Server) - 웹 서버 + 웹 컨테이너 - Apache Tomcat 9.0
웹 브라우저 - 사용자의 요청에 맞는 주소로 찾아가서 인터넷의 컨텐츠(문서, 그림, 멀티미디어 파일 등)를 검색 및 열람 후 사용자에게 보여주기 위한 응용 프로그램의 총칭 - 사용자의 요청을 알맞은 서버에 전달 후 응답 파일을 받아온 후 먼저 해석해서 그래픽으로 표현해서 사용자에게 보여주는 프로그램 - 크롬, 사파리, 파이어폭스, 엣지, 오페라, 삼성 브라우저, 네이버 웨일 등.
예시 - 클라이언트가 네이버 서버한테 정적인 요청을 하게 되면 네이버 서버가 가지고 있는 정적 파일을 그대로 보내줌으로써 응답을 함 - 하지만 클라이언트가 서버한테 동적인 요청을 하게 되면 네이버 서버는 가지고 있는 정적 파일로는 응답을 해 줄 수 없기 때문에 웹 컨테이너를 사용 - 웹 컨테이너 안에는 개발자가 작성한 코드들과 데이터베이스 등을 이용해 정제된 데이터를 서버에게 돌려주고 서버는 클라이언트에게 응답을 함
2. 프로토콜과 도메인
프로토콜(Protocol) - 사람끼리 소통할 때 서로 이해할 수 있는 공용어를 사용해야 하듯이 컴퓨터끼리 소통할 때에도 공용어를 사용해야함 - 원활하게 통신하기 위해 필요한 규약을 프로토콜이라 함
http - HyperText Transfer Protocol - 클라이언트와 서버 간의 웹 페이지 등의 자원을 통신하는 규약 - 텍스트로 통신하기 때문에 가로채서 본다면 누구나 내용을 볼 수 있음
https - Http Secure Socket - SSL(Secure Socket Layer) 프로토콜을 이용해서 자원을 공개키 암호화 방식으로 암호화해서 통신하는 규약 - SSL 인증서 구입 비용 및 갱신 비용이 발생하고 HTTP에 비해서 서버에 부하가 더 많아진다.
ip - Internet Protocol - 컴퓨터들을 서로 구분할 수 있도록 네트워크 상에서 인터넷에 접속할 때 고유번호(주소)를 부여하는데, 그 주소를 IP 주소라 함
도메인(Domain) - IP 주소는 기억하고 이해하기 힘들기 때문에 이를 위해서 이름을 부여해 만들어준 주소 - DNS(Domain Name Service)를 통해서 부여받고 IP 주소로 해석함