시작점이 /foo/bar/ 일 때 상대 경로 ../hoge/fuga의 절대 경로를 쓰시오. (81p)
/foo/hoge/fuga
URL 구현에서 주의할 점 2가지를 모두 설명하시오. (89p)
가능한 절대 URI를 사용한다는것, 인코딩의 혼란을 피하기위해 UTF-8을 사용하는것
URI, URL, URN이 무엇인지 각각 쓰시오. (90~91p)
URI는 리소스를 식별하는것 URL은 리소스의 위치를 나타내는것, URN은 리소스의 이름을 나타내는 것이다. URL과 URN을 합친 것이 URI다.
Cool URI가 무엇인지 설명하고 이를 위한한 URI 설계지침 5가지를 모두 설명하시오. (92~98p)
Coll URI는 변하지 않는 URI를 말한다.
프로그래밍 언어에 의존적인 확장자와 경로를 포함하지 않는다.
메서드명과 세션ID를 포함하지 않는다.
URI는 해당 리소스를 표현하는 명사다.
URI의 불투명성에 대해서 아는대로 설명하시오. (107~108p)
URI를 클라이언트 쪽에서 구성하거나 확장자로 리소스의 내용을 추단하거나 할 수 없는 특성을 URI는 클라이언트에 있어 불투명하다 라고 합니다.
웹 서비스와 웹 API 설계에 있어서 URI가 중요한 이유 3가지는 무엇인가? (109p)
URI는 리소스의 이름이다
URI는 수명이 길다
URI는 브라우저가 어드레스 란에 표시한다.
HTTP 메시지 구조를 그리고 각각에 대해서 설명하시오. (123~128p)
스타트라인 - 요청 메시지의 경우는 요청 라인, 응답 메시지의 경우는 스테이터스 라인이 된다.
헤더 - Content-Type헤더에서 HTML의 MIME 미디어 타입과 그문자 인코딩 방식을 지정
빈줄 - 헤더의 종료를 빈 줄로 식별한다.
바디 - HTML이 포함되어 있다.
애플리케이션 상태란 무엇인가? 그리고 Stateful 서버의 결점은 무엇인가? (131~132p)
애플리케이션 상태란 세션 상태라고도 한다.
서버가 클라이언트의 상태를 기억하는 것은 클라이언트 수가 증가함에 따라 어려워지게 된다.
Self Descriptive Message가 무엇인지 설명하고 이를 이용한 Stateless 서버의 장점을 쓰시오. (132~134p)
요청을 처리하는 데 필요한 정보가 모두 포함되어 있는 메시지를 자기 기술적 메시지라고한다.
스테이트리스한 서버는 애플리케이션의 상태를 기억할 필요가 없기 때문에 서버 시스템이 단순해진다.
Stateless 서버의 단점은 무엇인가? (134~136p)
송신할 데이터의 양이 많아진다.
인증 등 서버에 부하가 걸리는 처리를 반복한다.
POST의 용도 3가지를 설명하시오. (141~145p)
서버 리소스의 작성
리소스에 데이터 추가
다른 메서드로는 대응할 수 없는 처리
리소스 작성시 POST와 PUT 중에 POST를 쓰는게 적절한 이유는 무엇인가? (149p)
POST는 클라이언트가 자동적으로 URI를 결정한다. PUT은 사용자가 직접 URI을 지정해야 한다. 그래서 웬만한 사이트가 아니면 POST를 사용한다.
HEAD의 사용 용도는 무엇인가? (151p)
리소스의 헤더만을 취득하는 메서드다. 이 성질을 이용하여 네트워크의 대역을 절약하면서 리소스의 크기를 조사하거나, 리소스의 갱신일자를 구할 수 있다.
다음 요청과 응답의 의미는 각각 무엇인가? (152p)
요청
OPTIONS /list/item1 HTTP/1.1
Host: Example.com
응답
HTTP/1.1 200 OK
Allow: GET, HEAD, PUT, DELETE
옵션 메소드는 그 리소스가 지원하고 있는 메서드가 무엇인지 요청하는 메소드다. 그래서 서버에서는 지원하는 메소드를 알려주고 있다.
멱등성, 안전에 대해서 각각 설명하시오. (157p)
멱등성이란 어떤 조작을 몇 번을 해도 결과가 동일한 것을 말한다.
안전이란 조작 대상의 리소스의 상태를 변화시키지 않는 것.
멱등성과 안전을 기준으로 GET, HEAD, PUT, DELETE, POST를 분류하시오. (158p)
GET, HEAD는 멱등이고 안전하다
PUT, DELETE는 멱등이지만 안전하지 않다.
POST는 멱등이지도 안정하지도 않다.
GET을 바르게 이용하고 있는지 판단하는 기준은 무엇인가? (164p)
GET을 실행 전후 리소스에 변경이 가해져있는 여부를 확인한다. 변경이 가해져 있으면 안된다.
현재 토마토 가격은 100원이다. PUT으로 토마토 가격을 갱신할 때 다음 PUT 사용은 어떤 부분이 잘못됐는가? 또한 올바른 표현은 무엇인가? (165~167p)
PUT /tomato HTTP/1.1
Host: example.com
Content-Type: text/plain; charset=utf-8
+50
멱등성이 깨져버린다.
스테이터스 코드 1xx, 2xx, 3xx, 4xx, 5xx의 분류와 의미를 설명하시오. (173~174p)
1xx 처리중
2xx 성공
3xx 리다이렉트
4xx 클라이언트 에러
5xx 서버 에러
스테이터스 코드에서 첫 번째 숫자를 이용한 분류 방식의 장점을 모두 설명하시오. (174~175p)
서버간의 약속을 최소한으로 억제하고 클라이언트와 서버의 결합을 가능한 한 완화하기 위해 즉 소결합을 위해 고안된 것이다.
컴포넌트의 치환이나 확장이 용이해진다.
다음 응답 코드의 문제점은 무엇인가? (189p)
HTTP/1.1 200 OK
Content-Type: application/xml
1001file not found
바디에서 에러메시지를 출력하는데 응답은 성공을 띄워주고 있다.
HTTP에서 기술되는 일시는 어떤 표준시를 따르는가? (196p)
GMT(존맛탱)
UTF-8로 선언된 xml 문서의 경우 Content-Type 헤더에 들어갈 알맞은 값은 무엇인가? (200~201p)
Content-Type: application/xml; charset=UTF-8
Content Negotiation이란 무엇인가? (202p)
미디어 타입과 문자 인코딩, 언어 태그는 서버가 일방적으로 결정하는 것뿐만 아니라, 클라이언트와 교섭해서 정할 수 있다. 이방법을 콘텐트 네고시에이션이라고 한다.
다음 2개의 메시지에 있는 10은 각각 몇 바이트인가? (205~206p)
Content-Length: 10
Transfer-Encoding: chunked
Content-Type: Text/plain; charset=utf-8
10
The brow fox ju
Content-Length은 10진수라서 그냥 10이고, 바디는 청크사이즈라서 16진수이기때문에 16이다.
WWW-Authenticate: Basic realm=“Example.com 를 클라이언트 입장에서 해석하시오. (207~208p)
WWW-Authenticate 헤더에 의해 클라이언트는 서버가 제공하는 인증 방식을 이해할 수 있게 되고, 그 방식에 따른 형식으로 인증 정보를 보낼 수 있다. 그리고 Basic인증을 지원하고 있다는 것을 알 수 있다. realm은 서버 상에서 이 리소스가 속한 URI의 공간의 이름이다.
URI Space를 설정하는 이유는 무엇인가? (208p)
URI 스페이스는 URI에서 패스 이하를 가리키는 것이다.
클라이언트는 동일한 URI 공간에 속한 리소스에는 같은 인증 정보를 송싱할 수 있다고 가정하게 되어 있어, 요청을 보낼 때마다 매번 401가 반환되는 것을 피할 수 있다.
SSL/TLS에서 제공하는 3가지 기능에 대해서 설명하시오. (211p)
도청방지(암호화), 위조방지(변경 감지), 위장방지(인증)
Expires와 Cache-Control의 유효기간 표시법 차이는 무엇인가? (221p)
Expires는 절대적시간으로 유효기간을 표시하나 Cashe-Control은 상대적으로 유효기간을 표시한다.
조건부 GET If-Modified-Since 와 If-None-Match 은 어떻게 구분하여 사용하는가? (226p)
ETag로 구분한다.
Pipelining이란 무엇인가? (227p)
지속적 접속에서는 클라이언트가 응답을 기다리지 않고 같은 서버에 요청을 송신할 수 있는데 이것을 파이프라인화라고 한다.
HTML이란 무엇인가? (232p)
Hypertext Markup Language의 줄임말 하이퍼미디어를 구현하는 마크업 언어
다음 문자 <, >의 실제 참조를 쓰시오. (239p)
&if;, >
복수의 XML 포맷을 조합할 때 이름의 충돌을 방지할 목적으로 사용하는 것은 무엇인가? 그리고 선언하는 서식은 무엇인가? (241p)