[네트워크] 6차시 - 응용계층(3)-2
2023. 3. 9. 16:27ㆍCS/네트워크
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에 걸린 시간 비교
[복습]
- 쿠키: 서버 응용이 클라이언트의 이전 작업 정보를 파악하기 위한 도구
- 세션 계층은 stateless
- 서버에서 클라이언트로 보내는 HTTP Response 헤더에는 Set-Cookie 필드가 있다. 클라이언트가 기억
- 클라이언트에서 서버로 보내는 HTTP Request 헤더에는 Cookie 필드가 있다. 클라이언트의 방문 시 서버가 쿠키 정보에 맞춰 반환
- 서버는 이전에 접속했던 정보를 가지고 있지 않지만, GET안에 있는 Cookie 정보를 통해 이전에 접속했던 사용자임을 구분할 수 있다.
- 클라이언트에게 너무 많은 권한과 정보를 주는 것을 해결하기 위해 클라이언트에게 세션 ID 정보만 쿠키로 전달하고 세션들의 특성은 서버가 관리한다.
- 다중 HTTP Transaction
- 기본 HTTP는 하나의 트랜잭션을 수행하고 TCP 연결이 종료된다.
- Persistent HTTP는 한 번의 연결만으로 많은 작업(Request, Response)들을 할 수 있다.
- Pipelined HTTP는 HTML 문서를 반환받은 후에 추가로 Request들을 연속적으로 요청할 수 있다.
- 성능
- 지연시간
- 전송률
- 전송받고자 하는 정보, HTTP 헤더 크기, TCP 연결/종결 시간
- 기본 HTTP < Persistent HTTP < Pipelined HTTP
한국항공대학교 김철기 교수님의 [컴퓨터 네트워크] 강의 정리입니다. 감사합니다.
http://www.kocw.net/home/cview.do?lid=0d173bbf40eee5f5
728x90
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 7차시 - 응용계층(4) (0) | 2023.03.15 |
---|---|
[네트워크] 6차시 - 응용계층(3)-3 (0) | 2023.03.09 |
[네트워크] 6차시 - 응용계층(3)-1 (0) | 2023.03.09 |
[네트워크] 4 & 5차시 - 응용계층(1), (2) (0) | 2023.02.22 |
[네트워크] 3차시 - 컴퓨터 네트워크의 계층 (0) | 2023.02.10 |