HTTP는 인터넷을 하면서 많이 쓰이면서도 굉장히 중요한 개념 중 하나라고 생각한다.
그래서인지 소크라티브에도 문제가 나온듯하다.
이런 HTTP에 대해 풀이를 해보도록 하겠다.
1 . HTTP에 대한 다음 설명 중 옳지 않은 것은?
A. 모든 HTTP 요청은 header와 body를 갖는다.
B. 클라이언트와 서버 간 요청-응답이 이루어지는 과정이다.
C. 브라우저와 서버가 통신할 수 있도록 만들어 주는 여러 프로토콜 가운데 한 종류다.
D. 서버가 처리할 수 없는 요청의 경우, 400번대 status code를 반환한다.
E. 서버는 클라이언트의 요청에 대해 무조건 응답을 돌려 주어야 한다.
풀이)
A. 모든 HTTP 요청은 header와 body를 갖는다.
-> O, POST만 가진다.
B. 클라이언트와 서버 간 요청-응답이 이루어지는 과정이다.
-> X, HTTP는 클라이언트와 서버 간 요청-응답에 대한 통신 규약이다.
C. 브라우저와 서버가 통신할 수 있도록 만들어 주는 여러 프로토콜 가운데 한 종류다.
-> X, 프로토콜의 종류는 다양한데, 웹을 사용하기 위한 프로토콜 종류에는 HTTP가 있다.
D. 서버가 처리할 수 없는 요청의 경우, 400번대 status code를 반환한다.
-> O, 서버가 처리할 수 없는 요청에는 500 번대 status code 를 반환한다.
E. 서버는 클라이언트의 요청에 대해 무조건 응답을 돌려 주어야 한다.
-> X, 요청이 있으면 무조건 응답이 있어야하는건 당연한것 아닌가!
따라서 답은 A,D이다.
2 . 아래의 HTTP 메시지에 대한 설명으로 잘못된 것은 무엇일까요?

A. HTTP Response다.
B. POST method를 사용했다.
C. response가 성공적으로 이루어졌다는 사실을 알 수 있다.
D. response의 payload는 html 문자열이다.
풀이)
A. HTTP Response다.
-> X, 200 OK를 통해 성공적으로 응답했다는 것을 알 수 있다.
B. POST method를 사용했다.
-> O, 어떤 method를 사용했는지 알 수 없다.
C. response가 성공적으로 이루어졌다는 사실을 알 수 있다.
-> X, 200 OK는 성공적으로 응답했다는 것을 뜻한다.
D. response의 payload는 html 문자열이다.
-> X, header의 Content-Type 을 통해 text/html로 Body를 보냈다는 것을 알 수 있다.
따라서 답은 B이다.
3 . 서버로 데이터를 전송하여 새로운 리소스를 생성하고자 할 때 사용해야 하는 HTTP 메서드는 무엇인가요?
풀이)

따라서 답은 POST이다.
4 . HTTP 통신의 두 가지 속성에는 무엇이 있을까요? 영어로 적어주세요.
정답을 쉼표(,)로 구분하여 적어주세요! (정답1,정답2)
풀이)
HTTP의 속성은 두 가지가 있다.
connectionless(무연결성): 응답이 완료가 되면 클라이언트와 서버의 연결이 끊어지는 특징이다.stateless(무상태성): 모든 http 요청은 독립적이므로 서버는 클라이언트의 상태를 기억하지 못한다(지속적인 state라는 것이 없다).
따라서 답은 connectionless, stateless이다.
5 . HTTP 요청 및 응답시 전송되는 body의 MIME 타입을 설정해주기 위한 헤더의 이름은 무엇인가요?
A. Accept
B. Content-Type
C. Content-Length
D. Allow
풀이)
A. Accept
-> X, 돌려줄 데이터 타입에 대해 서버에 알린다.
B. Content-Type
-> O, 리소스의 미디어 타입을 나타냅니다.
C. Content-Length
-> X, 수신자에게 전송된 엔티티 바디의 크기를 10진수 바이트 단위로 나타냅니다.
D. Allow
-> X, 리소스에 의해 지원되는 HTTP 요청 메소드를 나열합니다.
따라서 답은 B이다.
6 . 특정 Cross origin에서 리소스를 요청할 경우, 서버가 해당 origin에 대한 접근을 허용하기 위해 사용하는 응답 헤더는?
A. Access-Control-Allow-Origin
B. Access-Control-Max-Age
C. Access-Control-Allow-Method
D. Access-Control-Allow-Headers
풀이)
A. Access-Control-Allow-Origin
-> O, 허용할 오리진 (*는 전체)
B. Access-Control-Max-Age
-> X, 허용할 시간 (초 단위)
C. Access-Control-Allow-Method
-> X, 허용할 메소드
D. Access-Control-Allow-Headers
-> X, 허용할 헤더
따라서 답은 A이다.