응용 계층의 역할
•
응용 계층은 애플리케이션과 데이터를 주고 받기 위한 역할을 하는데, 서버가 이해할 수 있는 메시지(데이터)로 변환하고, 전송 계층에 전달하는 역할을 수행한다.
•
애플리케이션은 서비스를 요청하는 측(클라이언트)과 웹 브라우저, 메일 프로그램 등 서비스를 제공하는 측(서버)으로 나뉜다.
클라이언트 측 애플리케이션과 서버 측 애플리케이션이 통신하기 위해 응용 계층의 프로토콜을 사용해야 한다.
응용 계층 프로토콜
•
HTTP - 웹 사이트 볼 때 , 포트번호 80번
•
FTP - 파일 전송할 때 , 2개의 포트를 사용한다 TCP포트 20번은 데이터 전송을 위한 용도 TCP포트 21번은 제어용
•
SMTP - 메일을 보낼 때 , 포트번호 25번
•
POP3 - 메일을 받을 때 , 포트번호 110번
•
DNS - 네트워크 장비에 붙여진 이름을 기반으로 IP 주소 알아내는 것 , 포트번호 53번
•
Telnet - 원격 터미널을 접속할 때 , 포트번호 23번
•
SSH - Telnet과 같은 서비스는 보안에 취약하여 보완한 것 , 포트번호 22번
DNS(도메인 네임 시스템) : 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다.
•
응용 계층에서 보내려는 데이터는 하위 계층인 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층 순서로 처리된다.
웹 서버의 구조(웹 사이트 접속)
WWW란?
WWW(World Wide Web)은 줄여서 W3나 웹(Web)이라고도 불린다.
•
HTML - (Hypertext Markup Language)웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여작성하는 마크업 언어 제목, 리스트, 이미지 등을 보여줄 때 태그를 사용한다.
•
URL - (Uniform Resource Locator)
•
HTTP - (HyperText Transfer Protocol)
세 가지 기술이 사용된다.
문서와 이미지는 각각 별도로 요청한다. - 그래서 가끔 글이 먼저 보이고 이미지가 나중에 보일 때가 있다.
HTTP란?
클라이언트는 웹 사이트를 보기 위해 웹 서버의 80번 포트를 이용해 HTTP 통신을 한다.
클라이언트가 데이터를 요청할 때는 “GET”이라고 하는 요청 정보, 파일 이름,버전 등을 서버에 전송
1.
클라이언트가 데이터를 요청할 때 “GET”이라고 하는 요청 정보,파일 이름, 버전 등을 서버에 전송한다.
2.
서버는 응답으로 요청을 정상적으로 처리했다는 “OK”라는 정보를 반환하고 요청한 파일을 클라이언트에게 전송한다.
HTTP/1.0 이전의 연결
•
요청을 보낼 때마다 연결을 끊고, 다시 연결을 수립하고 요청과 응답을 받는 과정을 반복했기 때문에 웹 페이지가 느리게 보였다.
Keepalive
•
HTTP/1.1 버전에서는 Keepalive 라는 기능을 추가하여 연결이 한번 수립되면, 데이터 교환을 마칠 때 까지 연결을 유지하고 데이터 교환을 모두 끝낸 후에야 연결을 끊는다.
•
요청을 순서대로 처리하는 것의 문제는 이전 요청이 길어지면, 다음 요청에 대한 처리가 늦어진다.
HTTP/2
•
HTTP/2 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.