Chapter 2 : Application Layer(2)

HeeHo Jung·2023년 4월 18일
1

컴퓨터네트워크

목록 보기
7/8
post-thumbnail

Web and HTTP

- 웹 페이지는 각각의 objects로 구성되어 있고, 각 객체는 다른 웹 서버에 저장할 수 있음
- object는 HTML파일, JPEG 이미지, Java applet, audio
- 웹 페이지는 URL 주소를 지정 가능한 여러 참조 객체를 포함한 기본 HTMl 파일로 구성됨(www.someschool.edu/someDept/pic.gif)

HTTP : hypertext transfer protocol

- 웹 application-layer의 open protocol
- client/server model
client : 웹 객체 요청, 수신(HTTP 사용)
server : 클라이언트의 요청에 대한 응답으로 객체 보냄(HTTP 사용)

HTTP는 TCP를 사용:

- client는 sever에 port 80에 대한 TCP 연결(소켓 생성)
- sever는 TCP 연결을 수락
- HTTP messages(application layer protocol) 교환(client, server 간에)
- TCP 연결 종료
"Stateless(상태 비저장)"
: sever는 client 요청에 대한 정보를 유지 안함

HTTP connections : two types

Non-persistant HTTP

1) TCP 연결 열림
2) 최대 1개의 object가 연결을 통해 전달
3) TCP 연결 종료
(여러 object 전송하려면 여 TCP 연결 필요)

RTT : client->server->client 갔다오는 시간
HTTP 응답 시간 :
TCP 연결 시작(1RTT) + HTTP 요청, 반환(1RTT) + 파일 전송 시간

-> 2RTT + file transmission time

Non-permanet HTTP의 문제점:
- object 당 2RTT요구
- 각 TCP 연결에 대한 OS 오버헤드
- 병렬 TCP 연결

그래서!!!!!! 비영구적 HTTP 단점 보완

Persistant HTTP

1) server에 TCP 연결하고 server는 연결 열어둠
2) 열린 TCP를 통해 후속 HTTP 메세지 전송

-> 1RTT + file transmission time

두 종류의 HTTP messages : request(ASCII), response

< request >

  • POST method(추가, 작성) : 데이터가 Body로 server에게 전송되고, 내용이 눈에 보이지 않아 GET보다 안전
  • GET method : HTTP GET 요청 메세지의 URL 필드에 사용자 데이터 포함 (?monkey&banana 이런식)
  • HEAD method : 서버로 request, header만 return
  • PUT method(갱신, 작성) : 새 object를 서버에 업로드

< response >

: 상태 코드는 응답 메세지의 첫 번째 줄에 나타남

  • 200 OK : 요청 성공
  • 301 Moved Permanently : 영구적 이동
  • 400 Bad Request : 잘못된 요청
  • 404 Not Found : 찾을 수 없음
  • 505 HTTP version Not Supported : 지원 안함

Cookies (사용자/서버 상태 유지)

웹 사이트 및 클라이언트 브라우저는 쿠키를 사용하여 트랜잭션 간에 일부 상태 유지
4가지 요소

1) HTTP 응답 메세지의 쿠키 헤더라인
2) HTTP 요청 메세지의 쿠키 헤더라인
3) 쿠키는 사용자 브라우저에서 관리, 사용자 host에 저장
4) 웹사이트에서 백엔드 database(로그인 정보?)

Q : 어떤 쿠키가 사용될까?
- authorization(로그인)
- shopping carts
- recommendations
- users session state(Web email)
Q : 어떻게 상태가 유지될까?
- 송, 수신자가 계속 주고받으면서
- HTTP message의 헤더라인에 포함해서 상태 유지

쿠키는 다음 용도로 사용될 수 있다

- 해당 웹사이트에서 사용자 행동 추적(자사 쿠키)
- 제3자 쿠키에서 사용자 행동 추적
safari, firefox, chorme에서 비활성화

Web cashes(==proxy server)

- 빈번하게 accsess되는 data 따로 저장 -> 원본 서버 없이 클라이언트 요청 충족
- 웹 캐시는 client, server 역할을 둘다 함
- 웹 캐시 가리키도록 브라우저 구성
- 브라우저는 모든 HTTP 요청을 웹캐시로 보냄
IF object in cache : 캐시는 클라이언트에 반황
Else : 원본 서버에 object를 요청하고, 캐시가 이것을 받아서 클라이언트에 전달

왜 웹 캐시를 사용하나?

-> 클라이언트 요청에 대한 응답시간 단축
-> access link의 트래픽 감소

profile
히히호호

0개의 댓글