[네트워크] 6차시 - 응용계층(3)-2

2023. 3. 9. 16:27CS/네트워크

728x90

//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎

 

 

FTP, HTTP와 같은 기본 응용 계층 프로토콜의 예를 배운다.

 

3. Cookie

  • 웹 응용의 구조
    • 웹 클라이언트: 홈페이지(응용 계층) - HTML 엔진(프레젠테이션 계층) - HTTP(세션 계층)
    • 웹 서버: 서버 응용 - 서버 응용 엔진 - HTTP(세션 계층: stateless)
      • 서버 응용: 로그인 정보, 장바구니 등 stateless 하지 않음 → 서버 응용이 앞의 요청과 뒤 요청이 동일한 사람인지를 구별하는 방법이 필요함: 쿠키
      • 세션 계층은 stateless: 앞에 연결해서 자원을 주었는지에 대해서 뒤에 연결해서 자원을 줄 때 관여하지 않음
  • 쿠키: 서버 응용이 클라이언트의 이전 작업 정보(state)를 파악하기 위한 도구
    • 쿠키는 클라이언트가 현재 처해 있는 상황에 대한 정보를 쿠키에 담아서 알려주면 서버는 그것을 활용해서 클라이언트의 상황을 인지해서 그에 맞는 반응을 함
  • 쿠키 프로토콜
    • HTTP Response 헤더(= 서버 → 클라이언트로 보내는 메세지)에는 Set-Cookie라는 필드
    • HTTP Request 헤더(= 클라이언트 → 서버 메세지)에는 Cookie라는 필드
    • 서버는 이전에 접속했던 정보를 가지고 있지 않지만 GET안에 있는 Cookie 정보를 통해 이전에 접속했던 사용자임을 구분할 수 있다.
    • 응용 계층에서 쿠키를 사용하고 세션 계층에서는 그 정보를 이용하지 않음
  • 방법론
    • 기억해야 할 상황을 쿠키에 담아 클라이언트가 기억하도록 하고 서버는 클라이언트의 방문 시 주는 쿠키 정보에 맞추어 반환
    • 문제점: 클라이언트에 너무 많은 권한과 정보를 준다.
    • 해결책: 세션: 클라이언트에게 세션 ID 정보만 쿠키로 전달하고 세션들의 특성은 서버가 관리한다.
      • 예) 몇 번 방문했는지? 쿠키는 클라이언트가 저장 | 세션은 서버가 저장
        • visits라는 쿠키를 주면서 몇 번 visit 했는지에 대한 정보를 직접 주었지만
        • sessionid 쿠키를 통해 세션들의 특징을 서버가 관리한다.
        • 서버에서 새롭게 쿠키를 세팅하지는 않는다.

 

4. HTTP Transaction의 성능 향상(다중 Transaction)

4-1. 기본 HTTP

  • 하나의 트랜잭션을 수행하고 TCP 연결이 종결 → 낭비가 너무 심하다.

4-2. Persistent HTTP

  • 한 번의 연결만으로도 많은 작업을 할 수 있기 때문에 기본 HTTP에 비해 시간을 아낄 수 있음

4-3.  Pipelined HTTP

  • HTML 문서를 반환받아야 어떤 것을 추가로 요청해야 하는지 알 수 있다.
  • html문서를 받은 후에 request를 연속적으로 요청한다.

4-4. 성능

  • 지연 시간: 패킷을 보내기 시작한 시점에서 패킷을 받기 시작한 시점까지 걸리는 전송 지연 시간
  • 전송률: 단위시간(초) 당 전송되는 데이터의 양
  • 예) 끝단 간 지연시간이 100ms이고, 전송률이 100MB/s인 네트워크에서 1MB를 전송하여 수신을 완료하는 데 걸리는 시간은?
    • 지연시간 100ms + 1MB 전송 시간(1/100초) 10ms = 110ms
    • 이 경우는 지연시간이 전송률보다 영향이 더 크다.
  • 성능을 측정할 때 고려해야 할 요소
    • 끝단 간 지연시간 - 100ms
    • 전송률 - 100KB/s
    • 전송받고자 하는 정보 - HTML 문서(1KB) + 이미지(10KB) 3개
    • HTTP 헤더 크기 - Request, Response 각 1KB
    • TCP 연결 / 종결 시간 - 400ms / 200ms
    • HTML 문서 transaction에 걸린 시간 비교

 

[복습]

  1. 쿠키: 서버 응용이 클라이언트의 이전 작업 정보를 파악하기 위한 도구
    1. 세션 계층은 stateless
  2. 서버에서 클라이언트로 보내는 HTTP Response 헤더에는 Set-Cookie 필드가 있다. 클라이언트가 기억
  3. 클라이언트에서 서버로 보내는 HTTP Request 헤더에는 Cookie 필드가 있다. 클라이언트의 방문 시 서버가 쿠키 정보에 맞춰 반환
  4. 서버는 이전에 접속했던 정보를 가지고 있지 않지만, GET안에 있는 Cookie 정보를 통해 이전에 접속했던 사용자임을 구분할 수 있다.
  5. 클라이언트에게 너무 많은 권한과 정보를 주는 것을 해결하기 위해 클라이언트에게 세션 ID 정보만 쿠키로 전달하고 세션들의 특성은 서버가 관리한다.
  6. 다중 HTTP Transaction
    1. 기본 HTTP는 하나의 트랜잭션을 수행하고 TCP 연결이 종료된다.
    2. Persistent HTTP는 한 번의 연결만으로 많은 작업(Request, Response)들을 할 수 있다.
    3. Pipelined HTTP는 HTML 문서를 반환받은 후에 추가로 Request들을 연속적으로 요청할 수 있다.
  7. 성능
    1. 지연시간
    2. 전송률
    3. 전송받고자 하는 정보, HTTP 헤더 크기, TCP 연결/종결 시간
    4. 기본 HTTP < Persistent HTTP < Pipelined HTTP

 

 

 

 


한국항공대학교 김철기 교수님의 [컴퓨터 네트워크] 강의 정리입니다감사합니다.

http://www.kocw.net/home/cview.do?lid=0d173bbf40eee5f5 

 

컴퓨터 네트워크

현대의 컴퓨터는 네트워크와 분리해서는 생각할 수 없다. 수많은 정보의 교류, 부가가치의 창출은 모두 네트워크를 통해서 이루어 진다. 본 과목에서는 컴퓨터 네트워크의 구성요소를 이해하고

www.kocw.net

 

728x90