기술 면접 준비 2

Jiwontwopunch·2021년 12월 22일
0

스터디

목록 보기
3/16
post-thumbnail

HTTP 프로토콜에 대해서 아는대로 말해주세요.

Hypertext Transfer protocol 인터넷상에서 데이터를 주고 받기위한 서버/클라이언트 모델을 따르는 프로토콜로 클라이언트에서 요청을 보내면 서버는 응답한다. TCP/IP위에서 작동하고 기본포트는 80번이다. 어떤 종류의 데이터든지 전송할 수 있도록 설계돼 있다. 장점은 불특정 다수를 대상으로 하는 서비스에 적합한 거고 단점은 연결을 끊어버리기 때문에 클라이언트의 이전 상태를 알 수 없다. 1번요청 1번응답(one request one response), 무상태성(데이터를 저장하지 않는다)

HTTP와 HTTPS의 차이

HTTP는 인터넷의 초기에 모든 웹 사이트에서 기본적으로 사용되었던 프로토콜로 일단 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것이었다. HTTPS는 SSL 보안 소켓 계층을 사용함으로써 보안성을 획득하였다. 암호화, 복호화가 필요하기 때문에 느리고 유지비용이 더 비싸다. 둘의 포트번호가 다르다. HTTPS는 포트번호가 443번을 사용한다.

HTTPS가 동작하는 방식

HTTPS는 TCP위에 SSL/TLS층을 추가하여 암호화, 인증 그리고 무결성 보장을 통해 더 안전하게 만들어주는 프로토콜이다. 암호화에 쓰이는 키와 복호화에 쓰이는 키가 동일한 기법인 대칭키와 공개키 방식을 전부 사용하는 하이브리드 방식을 사용한다. 데이터전송을 위해 대칭키 방식을 사용하며 대칭키를 안전하게 전달하기 위해 공개키 방식을 사용한다.

keep-alive 헤더에 대해서 설명해보라

TCP 전송이 끝나면 연결이 끊어지듯 HTTP도 서로 전송이 끝나면 연결이 끊어진다(disconnect현상). 이런 자원의 낭비를 막기 위해 keep-alive가 생겼다. 클라이언트 측에 연결을 유지하라는 신호를 보내면 클라이언트는 최대 timeout에 지정된 시간동안 연결을 유지한다. HTTP 1.1부터는 기본적으로 keep-alive로 동작한다.

HTTP1.0과 HTTP1.1의 차이

HTTP 1.0은 단순히 open/operation/close 방식을 취하고 있는 단순한 구조다. HTTP 1.0의 반복되는 disconnect 현상으로인해 한 서버에서 계속해서 접속을 시도하게 되면 과부하가 걸리고 성능이 떨어지게 되는 문제가 발생하게 되는데 이를 해결하기 위해 HTTP 1.1이 등장했다. 인터넷 프로토콜 수행이 빠르게 될 수 있도록 성능을 향상한다.

HTTP 헤더의 구조에 대해 설명

  1. 일반헤더 : HTTP 요청과 응답 메시지에 공통으로 사용하고, 날짜나 시간등의 일반적인 정보가 포함
  2. 요청/응답헤더 : 요청헤더는 요청한 URL, 메소드 요청 생성에 사용 된 브라우저 및 기타 정보와 같은 요청에 대한 정보가 포함된다. 응답헤더는 사용자가 특정페이지 또는 리소스에 대한 요청을 보낸 후 서버에서 브라우저에 의해 수신되며 컨텐츠에 사용 된 인코딩, 서버시스템에서 응답을 생성하는데 사용되는 서버 소프트웨어 및 기타 정보를 포함한다.
  3. 엔터티 헤더 : 실제 메시지 또는 전송중인 HTTP 본문에 대한 정보가 포함

HTTP2와 그 특징

HTTP2의 특징은 전체 요청을 통해 지연시간을 줄이고 응답 다중화를 지원하며, 프로토콜 오버헤드를 최소화하고, 요청 우선순위 지정을 추가하며, 서버 푸시를 지원하는 것에 있다. 전송방식을 텍스트방식을 바이너리형식으로 바뀌어 양방향전송이 가능해졌다.

HTTP GET과 POST의 차이

  1. GET : 캐시가 가능, 브라우저 히스토리에 남는다. 북마크 될 수 있다. 길이 제한이 있다(255자). 중요한 정보를 다루면 안된다. (보안에 취약-urlencoded 쿼리스트링이 다 보이니까) 데이터를 요청하는 방식. GET 방식에서 BODY에 특별한 내용을 넣을 것이 없으므로 BODY가 빈상태로 보내진다.
  2. POST : 캐시되지 않는다. 브라우저 히스토리에 남지 않고 북마크 될 수 없다. 길이 제한이 없다. 값이나 상태를 바꿀 수 있다.

0개의 댓글