HTML과 웹 브라우저의 구조
웹 사이트의 콘텐츠는 HTML이라는 형식으로 기술되어 있다. HTML 형식이란 태그의 구조를 나타내는 문서로 기술되는 것은 문자와 구조 뿐이다. 이미지는 별도의 파일로 저장되고 HTML에는 이미지를 저장한 쓰여 있을 뿐이다.
이렇게 각각의 HTML과 이미지를 웹 브라우저에서 조합하여 한 페이지로 표시한다.
웹 서버의 구조
웹 서버는 HTML이나 이미지 파일을 저장하고 있다. 웹 사이트를 열람할 때 웹 브라우저에서 보고 싶은 웹 사이트의 URL에 접속하면 웹 서버에서 해당하는 파일을 웹 브라우저로 보낸다.
웹 서버용 콘텐츠는 HTML 파일이나 이미지 파일 외에 동영상 파일, PHP나 Perl로 작성된 프로그램 파일 등으로 구성되어 있다.
웹 브라우저에서 https://www.abc.com/ 에 접속하면, 웹 서버는 URL에 해당하는 HTML 파일과 이미지 파일을 전달한다.
파일을 전달받은 웹 브라우저는 HTML 파일이나 이미지 파일을 사용해서 웹 페이지를 구성한다.
웹 사이트와 관련된 기술들
항목 | 내용 |
웹 서버용 소프트웨어 | 웹 브라우저에서 요청을 받아 파일을 전송하는 소프트웨어이다. 대표적으로는 Apache, Nginx가 있다. |
FTP | 서버에서 파일을 전송할 때 사용하는 프로토콜이다. |
SSH | 서버를 원격으로 조작할 때 사용하는 접속 방식이다. |
SSL 증명서 | 증명서를 사용해서 통신을 암호화할 수 있고 사이트가 변조되지 않았다는 것을 증명할 수 있다. (https) |
리다이렉트 | 요구된 URL에 대해서 다른 페이지로 전송하는 방법이다. |
CGI | 서버에서 처리하는 프로그램을 말한다. 대부분은 펄(Perl)이라는 언어로 작성한다. |
자바스크립트 (JavaScript) | 프로그래밍 언어 중 하나로 웹 브라우저로 처리된다. |
index.html | 관례적으로 웹 사이트의 메인 페이지가 되는 HTML 파일이다. 파일명을 지정하지 않을 경우 이 페이지가 표시된다. |
로드 밸런서 | 아래에 서버 여러 대를 두고, 트래픽을 분산하여 1대당 서버의 부하를 줄이는 장비이다. |
FW(FireWall) | 방화벽이라고 하며, 송수신하는 데이터에 대해 통과 여부를 결정하는 장비이다. 특히 WAF(Web Application Firewall)는 실제 데이터의 내부까지 확인하고 잘못된 데이터를 제거한다. |
CDN | 콘텐츠를 캐시하는 방식이다. 만료될 때까지 캐시를 사용자에게 돌려주는 방식으로 서버의 부하를 줄여준다. |
웹 사이트에 대한 공격 방법
항목 | 내용 |
멀웨어 | 부정하고 유해한 의도로 만들어진 악성 소프트웨어나 악성 코드이다. 예) 바이러스, 트로이 목마, 웜, 봇, 스파이웨어, 키로거, 백도어 |
XSS | 크로스 사이트 스크립팅이라 하며, 방문자의 웹 브라우저에 악의적인 스크리브를 심는 공격이다. |
CSRF | 사이트 간 위조 요청이다. 이미지 태그 공격이라고도 한다. 사용자의 의지와는 무관하게 공격자가 변조한 폼의 데이터를 특정 서버에 요청하여 처리하도록 유도한다. |
SQL 인젝션 | SQL문을 송신하여 데이터베이스에 부정한 조작을 하는 공격이다. |
세션 하이재킹 | 세션이라는 접속 정보를 도용하는 공격으로, 다른 사람인 척 할 수 있다. |
DoS 공격 | 표적 서비스에 부하를 발생시켜 서비스를 중지시키거나, 서비스를 방해하는 공격이다. 최악의 경우 서버가 다운된다. |
패스워드 크래킹 | 서버의 패스워드 파일에 접속하거나, 전송되는 패스워드를 도용하거나, 패스워드를 알아내는 공격이다. |
참고) DaaS(Desktop as Service)
클라이언트 PC 환경을 가상화하여 네트워크에 구축하는 서비스이다.
사용자는 네트워크를 통해 원격으로 사용하기 때문에 언제 어디서나 동일한 PC 환경을 사용할 수 있다.
구체적으로 회사 PC를 DaaS화하여 회사에서도, 집에서도 같은 환경에서 작업하는 것을 목적으로 사용된다.
-> VDI의 Cloud 버전
참고) FaaS(Function as a Service)
함수를 설치하면 실행되는 서비스이다. 서버리스라는 시스템으로 AWS Lamda가 Faas에 해당된다.
References
그림으로 이해하는 AWS 구조와 기술, 오가사와라 시게타카
'IT 기본지식' 카테고리의 다른 글
컴파일 언어와 인터프리터 언어의 차이 | Java는 어떤 언어인가? (1) | 2022.08.27 |
---|---|
NAS와 SAN Storage의 차이? (0) | 2022.08.25 |
GraphQL과 REST의 차이점? (0) | 2022.08.23 |
Docker(Container)와 VM의 차이는 무엇인가? (0) | 2022.07.25 |
Docker Container와 Image란 무엇인가? (2) | 2022.07.25 |
댓글