Chap 05. 응용 계층
Q1 : 보기를 아래와 같이 비유한다면 각각 어디에 해당하는가?
(보기) IP 주소, 네임 서버, 도메인 네임 |
전화번호 :
전화번호에 대응하는 사용자 이름 :
전화번호부 :
A : 전화번호 - IP 번호
전화번호에 대응하는 사용자 이름 - 도메인 네임
전화번호부 - 네임 서버 (도메인 네임을 관리하는 네임 서버는 'DNS 서버' 라고도 한다.)
Q2 : 예시의 도메인이 각각 어떤 도메인으로 분류되는지 말하여라.
예시) www.example.com.
A : 맨 오른쪽 마지막 . -> 루트 도메인 (생략가능)
com -> 최상위 도메인
example -> 2단계 도메인
www -> 3단계 도메인
Q3 : FQDN은 무엇이며, FQDN의 첫 번째 부분(www)을 3단계 도메인 외
다른 이름으로 부르기도 하는데 무엇인가?
A : FQDN(Fully-Qualified Domain Name) - 도메인 전체 경로를 포함하여 최상위 도메인까지 명시된 이름
, 호스트 네임(host name)
Q4 : 도메인 네임이 계층적으므로 이를 관리하는 네임 서버 또한 계층적이다.
이렇게 계층적이고, 전 세계 여러 군데에 위치해 분산된 도메인 네임에 대한 관리 체계를
무엇이라고 부르는가?
A : DNS, 도메인 네임 시스템(Damin Name System)
DNS는 호스트가 이러한 도메인 네임 시스템을 이용할 수 있도록 하는 애플리케이션 계층 프로토콜을 의미하기도 한다.
Q5 : 네임 서버들이 기존에 응답받은 결과를 임시로 저장했다가 추후에 같은 질의에 이를 활용하는 경우를
무엇이라고 하는가?
A : DNS 캐시(DNS cache)
Q6 : 네트워크상에서 자원을 주고받으려면 자원을 식별할 수 있어야 한다.
이 자원을 식별할 수 있는 정보를 무엇이라고 하는가?
A : URI(Uniform Resource Identifier)
Q7 : URI가 정보를 통해 자원을 식별하는데, 위치를 이용해 자원을 식별하는 것을 무엇이라고 하며,
이름을 이용해 식별하는 것은 무엇이라고 하는가?
A : 위치 기반 식별자 -> URL(Uniform Resource Locator)
이름 기반 식별자 -> URN(Uniform Resource Name)
Q8 : URL의 다섯 가지 구성을 말하여라.
A : scheme, authority, path, query, fragment
Q9 : HTTP(Hypertext Transfer Protocol)이란 무엇인가?
A : 응용 계층에서 정보를 주고받는데 사용되는 프로토콜
Q10 : HTTP의 특징 네 가지를 간단히 설명해보아라.
A : 1. HTTP는 클라이언트와 서버가 서로 HTTP 요청 메시지와 HTTP 응답 메시지를 주고받는 요청-응답 구조로 동작한다.
2. HTTP에서 메시지로 주고받는 자원의 종류, 미디어 타입(예- HTML, JSON, PNG, PDF 등)에 특별한 제한을 두지 않고
독립적으로 동작이 가능하여 미디어 독립적인 프로토콜이라고도 한다.
3. 서버가 HTTP 요청을 보낸 클라이언트와 관련된 상태를 기억하지 않고 기본적으로 독립적인 요청으로 간주한다.
(이에 스테이트리스(statless) 프로토콜이라고도 하며, 실수로 같은 메시지를 전송해도 각기 다른 요청으로 간주한다.)
4. 하나의 TCP 연결상에서 여러 개이 요청-응답을 주고받을 수 있는 킵 얼라이브(keep-alive) 기술을 제공하여
지속 연결이 가능하다.
Q11 : HTTP 메시지 구조를 그림으로 그려보아라.
A :
Q12 : HTTP 메서드 중 GET 메서드에 대해서 설명해보아라.
A : GET - 가져다주세요 -> 자원을 습득하기 위한 메서드로, 특정 자원을 조회할 때 사용되는 메서드이다.
클라이언트가 서버에게 '이것(=조회하고자 하는 자원)을 가져다주세요'라고 요청을 보내는 것과 같다.
Q13 : HTTP 메서드 중 POST 메서드에 대해서 설명해보아라.
A : POST - 처리해주세요 -> 서버로 하여금 특정 작업을 처리하도록 요청하는 메서드이다.
Q14 : HTTP 상태 코드에 대해 각각 설명하라
200번대 - [ ]
300번대 - [ ]
400번대 - [ ]
500번대 - [ ]
A : 200번대 - [ HTTP의 상태 코드 성공 ]
300번대 - [ 리다이렉션을 나타냄 (요청을 완수하기 위해 추가적인 조치 필요 상태) ]
400번대 - [ 클라이언트 에러를 나타냄 (서버가 처리할 수 없는 형태로 요청을 보냈거나,
존재하지 않은 자원에 대한 요청을 보낸 경우 ]
500번대 - [ 서버 에러 (과부하나 일시점검 상태) ]
Q15 : HTTP 요청 시 주로 활용되는 대표적인 헤더 네 가지를 말해보아라.
A : Host, User-Agent, Referer, Authorization
Q16 : HTTP 응답 시 주로 활용되는 대표적인 헤더 다섯 가지를 말해보아라.
A : Server, Allow, Retry-After, Location, WWW-Authenticate
Q17 : HTTP 요청과 응답 모두에서 공통으로 활용되는 HTTP 헤더에 대해 여섯 가지 말해보아라.
A : Date, Connection, Content-Length, Content-Type, Content-Language, Content-Encoding
Q18 : 캐시(cache)란 무엇인가?
A : 불필요한 대역폭 낭비와 응답 지연을 방지하기 위해 정보의 사본을 임시로 저장하는 기술
(*사본을 저장한다는 점이 중요하다.)
Q19 : 이것은 서버에서 생성되어 클라이언트 측에 저장되는 데이터로,
상태를 유지하지 않는 스테이트리스 프로토콜인 HTTP의 특성을 보완하기 위한 수단이다.
이것은 무엇인가?
A : 쿠키(cookie)