- Today
- Yesterday
- Total
메이쁘
[Network] 2020.12.04. 오늘의 면접 Q&A 본문
안녕하세요.
CS관련 질문과 면접에 맞는 답변을 작성하면서 지식도 쌓고 면접도 대비하는 시간을 가지려고 합니다.
틈틈히 게시글을 작성하며 면접 대비 데이터셋을 확보해둔 다음
언젠간 면접하게 될 때 모아서 쓰려고 합니다.
(실제로 면접에서 들었던 질문이 아니라, 제가 스스로 답을 정해놓고 짜논 질문이라 이렇게 안나올 수 있습니다!!!)
이번 글은 Network 카테고리 입니다.
-- 질문 목록
Q1. HTTP와 HTTPS는 무엇이고, 어떤 차이점이 있나요?
Q2. SSL 인증서 암호화 기법인 대칭키 암호화 기법, 공개키 암호화 기법에 대해 설명해보세요.
Q3. 정보 전달 방식 중 GET과 POST의 차이점은 무엇인가요?
Q1. HTTP와 HTTPS는 무엇이고, 어떤 차이점이 있나요?
A. HTTP는 WWW(웹) 상에서 정보를 주고받는 프로토콜 입니다. 즉, 클라이언트(사용자) 와 서버 간에 웹 문서를 통해 정보를 주고받는 규약을 뜻합니다. 이는 애플리케이션 계층의 프로토콜로 TCP/IP에서 동작합니다.
이렇게 HTTP를 통해 정보를 전달하는 방법을 HTTP 요청 메서드 라고 하는데, 크게 GET, POST, HEAD, DELETE, OPTION 이 있습니다.
HTTPS는 이러한 HTTP의 문제점인 보안을 강화하기 위해 만들어졌으며, 인터넷 상에서 정보를 암호화하는 SSL 인증서(SSL 프로토콜) 를 활용하여 정보를 전달합니다.
즉, 일반적인 HTTP에서 정보를 전달할 때 그대로 전달하기 때문에 중간에 가로챌 수 있어 보안상의 위험이 존재했습니다. 하지만, SSL 인증서를 활용해 데이터를 암호화하여 송수신하기 때문에 정보를 중간에 가로채도 복호화를 할 수 없게 되었습니다.
Q2. SSL 인증서 암호화 기법인 대칭키 암호화 기법, 공개키 암호화 기법에 대해 설명해보세요.
A. 간단하게 설명드리면 대칭키 암호화 기법은 데이터 암복호화에 사용하기 위해 동일한 키를 활용하는 기법이고, 공개키 암호화 기법은 비대칭키 암호화 기법이라고도 하는데, 암복호화를 위해 각각 다른 키를 가지고 진행하는 기법입니다.
우선, 대칭키 암호화 기법에 대해 설명드리겠습니다. 대칭키 암호화 기법이란, 위에서 설명했다시피 암복호화한 키를 아는 사람만이 해독할 수 있습니다. 이는 공개키 암호화 기법보다 정보전달이 훨씬 빠르지만, 하나의 해독키를 서로 교환해야하기 때문에 키를 중간에 탈취당할 수 있다는 단점이 있습니다.
반면, 공개키 암호화 기법은 하나의 키를 모든 사람들에게 공개하는 공개키를 가지고 데이터를 암호화한 다음 해당 키 주인에게 전달하는데요. 그럼 키 주인은 자기 자신만 갖고 있는 또 하나의 개인키를 가지고 받은 데이터를 복호화하여 전달받습니다.
순서를 간단히 정리하자면 (A : 클라이언트, B : 서버)
1. B는 공개키 / 개인키 를 만들고(이 때, 개인키는 공개키에 대응됩니다.), 공개키는 모두에게 공개하며 개인키는 본인만 가지고 있습니다.
2. A가 B에게 정보를 전달하기 위해 B의 공개키를 가져와 데이터를 암호화합니다.
3. A가 B에게 암호화된 데이터를 전달합니다.
4. B는 해당 데이터를 자기 자신이 갖고있던 개인키로 복호화하여 정보를 읽습니다. (공개키에 대응되기 때문에 복호화 가능)
입니다.
Q3. 정보 전달 방식 중 GET과 POST의 차이점은 무엇인가요?
A. GET 방식은 정보 조회를 위한 목적으로 통신하며, 보통 URL에 parameter를 포함시켜 요청하는 방식입니다. 또한, 데이터를 헤더에 포함시켜서 전달합니다.
이는 URL 및 헤더에 요청하는 정보가 그대로 노출되기 때문에 위험할 수 있습니다. 또한, 전송 길이에 제한이 있습니다.
반면, POST 방식은 정보를 좀 더 안전하게 주고받기 위해 사용하며, 웹의 body에 정보를 담아 전송합니다.
body에 담으면 GET 방식보다는 조금 더 안전하지만, 크롬 개발자 도구로 body 내용을 볼 수 있기 때문에 중요한 정보는 암호화해서 송수신해야합니다. 이러한 POST 방식은 전송 길이의 제한이 없으며, POST 방식으로 요청하게 되면 헤더에 요청 데이터 타입을 명시해야합니다.
이상입니다.
감사합니다!
'면접 대비 CS지식 > SELF CS면접 Q&A' 카테고리의 다른 글
[WEB] 예상 Q&A 공부(HTTP Status Code, Web과 WAS의 차이) (0) | 2021.03.02 |
---|---|
[Android] 2021.01.28. 오늘의 면접 Q&A (0) | 2021.01.28 |
[Network - 전송] 2020.11.21. 오늘의 면접 Q&A (1) | 2020.11.21 |
[Programming] 2020.11.20. 오늘의 면접 Q&A (2) | 2020.11.21 |
[OS - Memory] 2020.11.20. 오늘의 면접 Q&A (0) | 2020.11.21 |