-
WWW를 구성하는 기술로 제안된 또 현재 웹을 지탱하는 핵심 3개의 요소와 각각에 대해 설명하시오 (p17)
- HTML : 웹을 표시하는 마크업 언어이다.(Hyper Text Mark-Up Language)
- HTTP : 웹에서 통신하기 위해 필요한 통신 규약이다. (Hyper Text Transfer Protocol)
- URI : 웹상에 존재하는 정보를 통합적으로 표현하는 식별자(Uniform Resource Identifier)
-
TCP는 계층화를 이루고 있는데 계층화로 인해 얻는 장점에 대해 설명하시오(p21)
- 각 계층은 다른 계층이 변해도 영향을 주지 않는다.
- 각 계층의 접촉면에 인터페이스가 존재해서 한 계층을 변경하더라도 전체 변경이 일어나지 않는다.
-
TCP가 신뢰성을 제공하기 위해 사용하는 2가지 방법과 각각에 대해서 설명하시오(p27)
- byte stream : 크기가 큰 데이터를 여러 바이트로 쪼갠 패킷 단위로 전송하는 방법
- connection : 통신을 하기 전에 서로가 메시지를 주고 받은 후에 가상의 통신회로를 구축하는것.
-
클라이언트가 서버로 요청을 보내 도착하는 과정을 용어들을 이용하여 (DNS, 캡슐화, TCP, ARP, IP주소 MAC주소) 설명하시오(p30)
- 요청할 메시지를 만듬
- 요청할 도메인 주소의 IP를 얻기 위해 DNS 로 요청
- TCP 통신을 하기 위해 3 way handshake를 이용하여 커넥션을 확립하고 메시지를 바이트스트림으로 여러 패킷으로 쪼갠다.
- 쪼개는 과정에 TCP/IP 의 각 계층에서 필요로 하는 정보를 헤더(IP주소 는 3계층, MAC주소는 2계층)로 붙혀 전송한다.
- 만약 수신자 IP가 현재 네트워크라면 ARP 요청으로 mac주소를 알아내어 바로 전송한다.
- 아니라면 ARP 요청은 default gateway의 MAC주소를 요청하고, 각 라우터는 자신이 최적화된 라우팅 테이블에서 longest match 방법을 이용하여 ip주소를 찾아 ARP를 요청하는 반복을 하여 목적지 까지 이동한다.
-
Resource와 URI에 대해 각각 설명하시오(p32)
- Resource는 웹상에 존재하는 데이터를 나타냄
- URI는 스키마를 나타내는 리소스를 식별하기 위한 식별자
-
HTTP 프로토콜에서 지속 연결이 무엇인지, 나오게된 배경에 대해 설명하고 파이프라인화에 대해 설명하시오(p55)
- 이전의 HTTP에서는 커넥션을 맺고 요청 응답을 한 후에 커넥션을 끊는 방법이었음
- 하지만 이미지가 여러개 들어간 페이지를 요청할 경우, 웹페이지를 응답 받은 후에 이미지를 보여주기 위해 각각을 다시 요청해야 하는데, 매번 커넥션을 맺고 요청하고 응답을 받고 끊는 과정을 하다보니 오버헤드가 많았음.
- 그래서 어느 한쪽에서 연결을 끊기 전까지 또는 설정된 시간동안 커넥션을 끊지 않고, 여러 요청과 응답을 할 수 있는 방법을 만듬.
- 그래도 매번 요청을 하고 응답을 기다리는 방식이기 때문에 여러 요청을 보내다 보니 느릴 수밖에 없었고
- 파이프라이닝화를 통해 한번에 여러 요청을 하고 응답을 받는 형식으로 응답 요청 속도를 빠르게 하였음.
-
쿠키가 무엇인지 설명하고 나오게된 배경에 대해 설명하시오(p59)
- 웹은 stateless로 클라이언트의 상태를 갖고 있지 않기 때문에, 클라이언트가 누구인지 알아야 서비스가 나오게 되면서 문제가 생겼음.
- 그래서 서버에서 쿠키를 생성하여 setCookie를 하면 클라이언트는 해당 쿠키를 클라이언트에게 저장하고, 매 요청시 마다 서버에 전달하여 서버가 누구인지 알게 하는 용도로 만들어졌음.
-
HTTP 메시지가 어떻게 구성되어져 있는지 설명하시오(p62)
- http는 메시지 헤더와 메시지 바디로 구성되어져 있고, 구분 값으로 개행 문제가 있다(CR+LF)
-
메시지 헤더에 포함되 있는 Request Line과 status line에 대해 설명하시오
- request line은 request header에 포함되며, method, request URI, http 버전 정보가 들어가 있음.
- status line은 response header에 포함되며, status code와 응답에 대한 메시지, http 버전가 존재한다.
-
contents negotiation가 무엇인지 무엇을 협상하는지 설명하고 , 세가지 방법과 각각을 설명하시오
- 서버와 클라이언트가 어떤 리소스에 대해 전송할건지에 결정하는 것이다.
- 인코딩, 언어, 문자세트 등을 결정한다.
- 클라이언트가 클라이언트에 맞는 응답을 주기 위해 존재한다.
-
3가지
- agent driven negotiation : 클라이언트가 결정하는 것으로, 웹 페이지를 보여주는 언어 같은것을 선택할 수 있다
- server driven negotiation : 서버가 클라이언트의 헤더를 보고 결정하는 것이므로, 적합한 리소스를 주지 못할 수도 있다. os 의 종류나 pc 또는 스마트폰용 웹페이지를 자동으로 전환하는 것에 해당한다.
- transparent client driven negotiation : 위의 두가지 방법을 모두 사용한 방법이다.
-
TCP/IP에서 캡슐화란?(p24)
- 데이터를 송신할 경우 상위 계층에서 내려오면서 각 계층마다 필요한 헤더를 붙혀 포장하여 전송하고 수신측은 하위 계층부터 포장을(헤더)를 벗겨내면서 상위 계층으로 전달한다. 여기서 헤더로 포장(감싸는) 행위를 캡슐화라고 한다.