1️⃣ HTTP
HTTP 프로토콜이란 무엇인가요?
웹에서 데이터를 주고받을 때 사용되는 프로토콜로, 클라이언트는 HTTP를 사용하여 서버에 요청(Request)을 보내고, 서버는 요청에 대한 응답(Response)을 클라이언트에게 전송합니다.
HTTP의 요청/응답 모델에 대해 설명해주세요.
클라이언트는 HTTP 요청 메시지를 서버로 보내고, 이 요청 메시지는 요청 라인, 요청 헤더, 요청 본문으로 이루어져 있습니다. 서버는 클라이언트의 요청에 대한 응답 메시지를 보냅니다. 이 응답 메시지는 상태 라인, 응답 헤더, 응답 본문으로 이루어져 있습니다. 클라이언트는 요청을 보낸 후 서버에서 응답을 받을 때까지 대기하고, 서버는 요청을 받은 후 해당 요청을 처리한 후 응답을 클라이언트에게 보냅니다. 이러한 요청과 응답의 과정을 통해 클라이언트와 서버 간의 데이터 교환과 상호작용이 이루어지게 됩니다.
HTTP 메서드중 GET과 POST의 차이점은 뭔가요?
GET 방식은 서버에서 데이터를 조회하는 경우에 사용됩니다. 클라이언트가 서버에게 GET 요청을 보낼 때, 요청 URL에 파라미터를 붙여서 서버에게 전달합니다. 서버는 이 요청에 대해 적절한 응답 데이터를 찾아서 클라이언트에게 전송합니다.
POST 방식은 서버에 데이터를 전송하는 경우에 사용됩니다. 클라이언트가 서버에게 POST 요청을 보낼 때, 요청 본문에 데이터를 담아서 전송합니다. 서버는 이 데이터를 받아서 적절한 처리를 수행하고, 응답을 클라이언트에게 전송합니다.
PUT과 PATCH의 차이점은 뭘까요?
PUT은 리소스의 모든 것을 업데이트 하지만, PATCH는 리소스의 일부를 업데이트 합니다. 따라서 PUT은 같은 URI에 대해 같은 요청을 여러 번 전송해도 결과가 항상 같지만 PATCH는 수정하는 필드에 따라서 결과가 달라질 수도 있다는 차이점이 있습니다.
HTTP 상태 코드가 뭔가요? 알고 있는 상태 코드 몇가지 알려주세요.
클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단할 수 있습니다.
HTTP 헤더가 뭘까요? 알고 있는 헤더 몇 가지 설명해주세요.
HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있습니다. 부가적 정보라 함은, 대표적으로 "요청자", "컨텐트 타입", "캐싱" 등등(수십 가지)이 있습니다.
2️⃣ HTTPS
HTTPS에 대해서 설명해주세요.
HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜입니다. HTTPS는 HTTP와 다르게 클라이언트와 서버 간의 모든 통신은 SSL/TLS 프로토콜을 사용하여 암호화되므로 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화를 지원하고 있습니다.
SSL/TLS이 뭔가요?
SSL(Secure Sockets Layer)/TLS(Transport Layer Security)은 인터넷 상에서 데이터를 안전하게 전송하기 위한 프로토콜입니다. SSL은 인터넷 상에서 데이터를 암호화하고 인증하는 방식으로 정보를 보호하며, TLS는 이전에 사용되던 SSL의 보안 취약점을 개선하고 보안 강화를 위한 기능을 추가한 것입니다.
SSL/TLS는 주로 웹 브라우저와 웹 서버 간의 통신에서 사용되며, HTTPS(Hypertext Transfer Protocol Secure) 프로토콜을 통해 안전한 웹 사이트 접속을 제공합니다.
3️⃣ DNS
DNS가 뭔가요?
DNS이 사람이 읽을 수 있는 도메인 이름을 IP 주소로 변환하는 시스템입니다. 인터넷에서 컴퓨터와 서버는 IP 주소를 사용하여 통신하며, 이를 이용하면 데이터를 전송할 수 있습니다. 예를 들어, 사용자가 "www.1234.com"을 입력하면, 이를 DNS 서버가 해당 도메인 이름에 대응하는 IP 주소로 변환하여 컴퓨터에 전달합니다. 컴퓨터는 이 IP 주소를 이용하여 웹 사이트에 접속할 수 있게 됩니다.
DNS 작동 방식에 대해 설명해주세요.
- 사용자가 도메인 이름을 입력합니다.
- 예를 들어, 사용자가 "www.example.com"을 입력합니다.
- 사용자의 컴퓨터는 로컬 DNS 캐시에 해당 도메인 이름의 IP 주소를 확인합니다.
- 로컬 DNS 캐시는 사용자의 컴퓨터에 저장된 DNS 정보를 담고 있으며, 이를 이용하여 빠르게 IP 주소를 가져올 수 있습니다. 만약 로컬 DNS 캐시에 해당 정보가 없으면, 다음 과정으로 진행됩니다.
- 사용자의 컴퓨터는 DNS Resolver에 해당 도메인 이름의 IP 주소를 질의합니다.
- DNS Resolver는 로컬 DNS 캐시에 정보가 없을 경우, 해당 도메인 이름의 IP 주소를 찾기 위해 DNS 서버에 질의합니다. DNS Resolver는 일반적으로 인터넷 서비스 제공자(ISP)나 회사에서 제공하는 DNS 서버를 사용합니다.
- DNS 서버는 해당 도메인 이름의 IP 주소를 반환합니다.
- DNS 서버는 도메인 이름과 해당하는 IP 주소를 저장하고 있는 데이터베이스를 가지고 있습니다. DNS 서버는 사용자의 질의에 따라 해당 도메인 이름의 IP 주소를 찾아서 반환합니다. 반환된 IP 주소는 DNS Resolver를 통해 로컬 DNS 캐시에 저장됩니다.
이러한 과정을 거쳐서 사용자의 컴퓨터는 도메인 이름에 해당하는 IP 주소를 찾아내고, 이를 이용하여 서버와 통신하게 됩니다. DNS의 작동 방식은 인터넷 상에서 웹 사이트 접속 및 다양한 인터넷 서비스에서 중요한 역할을 담당하고 있습니다.
'CS' 카테고리의 다른 글
[CS 면접 준비] 컴퓨터 네트워크 (4) (0) | 2023.04.28 |
---|---|
[CS 면접 준비] 컴퓨터 네트워크 (3) (0) | 2023.04.25 |
[CS 면접 준비] 컴퓨터 네트워크 (0) | 2023.04.14 |
gdb로 register와 memory 변화 확인하기 (0) | 2022.09.05 |
어셈블리어 / ASM code (0) | 2022.09.05 |