본문 바로가기
네트워크

컴퓨터 네트워크 3. 애플리케이션 계층

by MiaCoder 2024. 4. 15.

HTTP

웹의 응용 계층 프로토콜

 

client/server모델

client http프로토콜을 사용하여 웹 객체응 요청, 수신, 보여줌

server http프로토콜을 이용하여 사용자 요청에 맞는 객체를 전송

 

HTTP는 TCP를 사용함

1. 클라이언트는 소켓을 생성, TCP연결 초기화

2. 서버는 연결을 수락.

3. http 메시지는 브라우저, 웹서버 사이에서 교환

4. TCP연결 해제

stateless함 - 과거 클라이언트 요청에 대한 어떤 정보도 포함하지 않음

 

http 연결 타입

non-presistent http

tcp 연결설정 -  최초 하나의 객케가 TCP연결을 통해 전송 - TCP연결 해제

RTT 작은 패킷이 클라이언트, 서버 사이를 왕복하는데 걸리는 시간

 

http response time (객체 당)

TCP연결을 초기화하는 하나의 RTT

http 연결을 위한 하나의 RTT

파일 전송이 걸리는 시간

 = 2RTT + 파일전송시간

각 TCP연결을 위한 os 오버헤드 발생

객체를 병렬로 가져오기 위해 병렬TCP연결

 

presistent http 

tcp연결이 하나의 서버에 설정 - 다양한 객체가 클라이언트, 서버사이에 전송 - tcp 해제

서버는 response를 보낸 후 연결이 유지됨

기존 연결이 유지된 상태에서 요청을 보냄

참조된 모든 객체에 대한 하나의 RTT발생

 

http의 메시지 타입

request(요청)

post 클라이언트로부터 서버로 전송

get 서버로 데이터 전송이 목적 url안보임

head 서버에게 반활될 헤더만 요청(디버깅)

put 서버에 새로운 객체를 업로드

 

response(응답)

200 ok 요청이 성공, 정보가 응답으로 보내짐

400 서버가 요청을 이해할 수 없음

404 요청 문서가 서버에 없음

505 요청 프로토콜을 서버가 지원하지 않음

 

상호작용 - 쿠키

모든 http요청은 독립적, stateless, 메시지를 단계로 교환하지 않음

이 때 웹 사이트와 클라이언트 브라우저는 쿠키를 사용하여 접속을 유지함

사용자의 브라우저에 사용자의 종단과 관리를 지속시키는 역할

권한부여

추천

세션상태 등을 관리할 떄 사용함

 

웹 캐시

서버를 대신하여 크랑이언트의 요청을 충족함

자체 저장 디스크를 가지고 최근 호출된 객체의 사본을 저장 및 보존함

브라우저는 모든 요청을 웹 캐시에 보냄

캐시내 객체가 있으면 클라이언트에게 객체를 반환함

없으면 서버에 객체를 캐시가 요청 클라이언트에게 반환

일반적으로ISP에 설치

요청에 대한 빠른 반응, 기관서버 크래칙 감소

 

조건부 GET

캐시 내부에 있는 객체의 복사본은 최신 객체가 아니면 전달하지않아야함

캐시 http요청에서 복사본 날짜를 특정함으롯 활용가능

 

http1.1

지속적인 TCP연결을 통해 하나의 TCp연결상 서버 클라이언트로 이어지는 웹페이지를 허용

서버 소켓수가 줄고 각 페이지는 공정한 네트워크 대역폭을 가짐

HOL블로킹(뒤에있는 객체 처리가 딜레이) 문제, 병렬 TCP연결로 해결 

FCFS사용 먼저온게 먼자 처리됨

 

http2

객체를 클라이언트에 보낼 때 유연성이 강화됨

객체를 프레임으로 나누고 http1.1에서 문제된 hol 블로킹을 완화라는 스케줄링 사용

프레임으로 쪼개진 객체. 큰 객체가 한번에 보내지 않고 쪼개져서 조내 다른 객체 순서지연이 덜발생

 

http3

http2에서 없었던 보안 기능이 추가됨

 

E-mali

SMTP 사용자에이전트와 메일 서버 사이의 메일전송 프로토콜

사용자 에이전트

메일을 읽고, 쓰고 ,편집하는 사람

메일 서버

각 사용자에이전트에 의해 메일을 주고받음 여기서 SMTP사용

(사용자1 -> SMTP, http -> 서버 -> SMTP -> 서버2 email acess protocol ->사용자2)

메시지를 받는 사람은 메시지를 읽을 떄 imap,http프로토콜을 사용한다.

http는 웹기반일때 사용

7bit ascii 형태여야 한다.

 

송신의 3가지

handshaking

메시지 전송

종료

 

사용자1이 사용자에이전트로 이메일 작성 -> 메일서버로 보내지고 메시지 큐에 저장 -> 사용자2의 메일서버에 TCP연결 진행

-> SMTP클라이언트가 TCP연결상 사용자1의 메시지 전송 -> 사용자2메일서버가 메시지 가지고 있음

-> 사용자2는 메일을 읽기 위해 사용자에이전트 요청

 

 

 

 

'네트워크' 카테고리의 다른 글

네트워크 6.  (1) 2024.04.18
네트워크 5. 전송 계층  (0) 2024.04.16
컴퓨터네트워크 4. DNS, P2P,CDN  (0) 2024.04.15
컴퓨터네트워크 2. 응용계층  (0) 2024.04.15
컴퓨터네트워크 1. 기초  (0) 2024.04.14