본문 바로가기
대학원 공부/computer science

Network : Application Layer

by 월곡동로봇팔 2019. 12. 16.

1. WWW (World Wide Web)


WWW 이란, client가 browser를 써서 server에 서비스를 접속하는 Client/Server 개념 서비스를 도입한것을 의미한다.

 

WWW Architecture

 

WWW

Web Page

웹페이지란, 같은 사이트나 다른 여러 사이트들에 page가 연결되어있는 것을 말한다.

웹페이지들은 브라우저를 이용해서 페이지를 볼 수 있다.

 

 

1.1 Client

Client

Browser

브라우저는 Web 문서들을 해석하고 보여준다.

 

Browser 구성

1. 컨트롤러는 키보드, 마우스로 컨트롤한다.

2. 클라이언트는 http, https 라는 protocol을 따른다.

3. 인터프리터는 HTML, JAVA, Javascript에 의해 돌아간다.

 

1.2 Server

server의 역할, 기능

 

1. server는 웹페이지를 가지고 있다. 

2. client의 request가 들어오면, server는 document를 보낸다.

3. 효율을 높이기 위해, server 들은 요청할 file 들을 미리 cache에 저장한다.(성능에 지대한 영향을 끼친다.)

-> HDD < SDD <<< Memory <<<<<< Cache 로 속도 차이가 굉장히 심하다.

4. 멀티스레딩 or 멀티프로세싱을 통해 request에 응답을 해야한다.

 

1.3 URL (Uniform Resource Locator)

 

URL

URL의 목적

Client는 Server에게 Web Page를 요구하는데, client는 요구하는 방식을 URL의 형태로 요구해야한다.

 

Protocol, Host, Port, Path 로 구성되어있다.

 

Protocol은 client/server 관계에서 통신규약이다. 주로 http를 사용하며, http는 WWW 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다.

 

HOST는 정보가 위치한 computer들의 위치를 말해준다. 즉 ip 주소를 의미하는데, 이는 domain name으로 지정되어 alias 되어 사용이 가능하며, domain name 을 관리해주는 server를 DNS라고 한다.

 

PORT는 URL에서 server의 port 번호를 의미한다.

 

PATH는 request한 file이 어디에 위치하는지를 알려준다.

 

 

1.4 Cookies & Session

Cookies 정의

서버에 로그인한 정보를 client가 가지고 있다가, 로그인을 미리 했던 정보들을 server에게 재요청할 때, 더 빠르게 접속을 도와주는 정보를 가지고 있다. 예를들어, name, id_number, 등등

Cookies 단점

이는 client가 직접 갖고 있기 때문에, cookie 들을 해킹하면, 다른 사람이 내 정보로 접속이 가능하기에 보안에 취약하다.

 

Session 정의

Cookie에 대한 정보를 client에게 주지않고, 서버가 관리한다. time-out을 설정해두어서 일정시간이내에 동작이 없으면 자동 로그아웃되는 것을 우리는 알 수 있다.

 

 

 

2. Web Document


2.1 HTML (HyperText Markup Language)

정의

 

웹페이지를 구성하는 언어를 말하는 것이며, HTML로 적어두면, browser가 읽어서 화면에 띄어준다.

 

구성

<head>, <body> 태그로 구성되어있다.

<head>는 Web Page에 대한 meta 정보가 들어있다.

<body>는 Web Page의 구성요소들을 직접 보여주는 부분이다.

 


cf) Node.js (사실 이 부분이 더 중요한 것 같긴하다....)

Why use Node.js ???

Node.js는 브라우저 안에서만 동작하는 Javascript는 server 내에서도 동작하게 함으로써, 흔히 말하는 Javascript를 Serverside 로 동작하게 했다. 그럼으로써, 브라우저 안에서도, 서버안에서도 Javascript를 쓸 수 있다.

 

사실 하나의 언어로, 브라우저와 서버를 동시에 운영이 가능하다는 것은 진짜 엄청 놀라운 일이다... 대박...

 

이렇게 확장성이 커짐에 따라, 서버의 Filesystem을 온전히 활용할 수 있게 되었고, 우리가 말하는 dynamic document, client가 원하는 동작을 할 때마다, 실시간으로 web page가 바뀌는 것을 도와준다.

 

Node.js는 HTML, CSS, Javascript 공부하고 나중에 대학원가서 더 공부해 볼 생각이다.

댓글