📌 5주차 과제
- 진도 : Chapter 05
- 기본미션 : Ch.05(05-1) 확인 문제 1번(p.271), (05-2) 확인 문제 2번(p.307), 풀고 설명하기
- 선택미션 : HTTP 요청 메시지 확인해 보기
1️⃣ 기본 숙제
Ch.05(05-1) 확인 문제 1번(p.271), (05-2) 확인 문제 2번(p.307), 풀고 설명하기
Ch.05(05-1) 확인 문제 1번(p.271)
: 도메인 네임과 네임 서버에 대한 설명으로 옳지 않은 것을 골라보세요.- ① 8.8.8.8은 대표적인 공개 DNS 서버로, 구글이 관리합니다.
② 도메인 네임은 호스트를 특정할 수 있는 문자열 형태의 정보입니다.
③ DNS는 계층적이고 분산된 도메인 네임에 대한 관리체계이자 이를 관리하는 프로토콜입니다.
④ www.example.com에서 루트 도메인은 com에 해당합니다. - 정답 : ④
- 풀이 : DNS는 Domain Name Server로 .를 기준으로 여러개의 도메인으로 계층을 나눠 서버를 분산하여 관리하는 계층적인 구조이므로 ③은 맞는 표현입니다. 그리고 각각의 도메인 네임을 통해 호스트를 특정할 수 있어 IP주소보다 더 실용적이고, 많이 활용되고 있기에 ②또한 맞는 표현입니다. 또한 이렇게 식별하는 과정에서 로컬 네입서버에 가장 처음 물어보는데, ISP에 할당되는 로컬 네임 주소 외에 공개 DNS 서버를 이용할 수 있는데 구글에서 8.8.8.8, 8.8.8.4 2개의 서버를 운영하고 있기에 ①또한 맞는 표현입니다.
- 다만, ④ com은 TLD(Top-level domain)을 말하며, www.example.com.에서 루트(.)는 숨겨져 표현이 되어 있으므로 루트 도메인이 com이라는 표현은 잘못된 표현이므로 옳지 않은 것을 고르는 이번 문제의 답은 ④입니다.
- ① 8.8.8.8은 대표적인 공개 DNS 서버로, 구글이 관리합니다.
(05-2) 확인 문제 2번(p.307) 풀고 설명하기
: HTTP 상태 코드에 대한 설명으로 옳지 않은 것을 골라보세요.- ① 300번대 상태 코드는 요청한 자원이 존재하지 않음을 의미합니다.
② 400번대 상태 코드는 클라이언트에 의한 에러를 의미합니다.
③ 500번대 상태 코드는 서버에 의한 에러를 의미합니다.
④ 200번대 상태 코드는 요청이 성공했음을 의미합니다. - 정답 : ①
- 풀이 :
- 100번대는 정보성 상태 코드인데 선지에서 다루지 않으니 제외하겠습니다.
- 200번대 상태 코드는 “요청이 성공했음”을 의미합니다. 200(OK) 요청의 성공, 201(Created) 요청이 성공했으며, 새로운 자원이 성공되었음을, 202(Accepted) 요청을 잘 받았으나, 아직 요청한 작업을 끝내지 않았음음을 204(No Contenct) 요청이 성공했으며 새로운 자원이 생성되었음을 의미합니다. 따라서 200번대 요청은 성공 상태를 의미함으로 ④ 은 맞는 표현입니다.
- 300번대 상태 코드는 리다이렉션(redirection)과 관련된 상태 코드를 말합니다. 리다이렉션은 RFC9110에 정의된 바와 같이 요청을 완수하기 위해 추가적인 조치가 필요한 상태로 클라이언트가 요청한 자원이 다른 곳에 있을 때 이동시키는 것을 의미합니다. 301, 308은 영구적인 리다이렉션을 일시적인 리다이렉션은 302, 303, 307로 표기합니다. 따라서 자원이 존재하지 않음을 의미하는 것이 아닌 자원이 존재하는 곳으로 이동시킨 상태를 알려주는 것이므로 ①은 틀린 표현으로 해당 문제의 답변이 됩니다.
- 400번대 상태 코드는 클라이언트에 의한 에러를 의미합니다. 가장 저희가 인터넷을 이용하며 많이 접할 수 있는 상태 코드입니다. 404(페이지가 존재하지 않을 때)를 가장 많이 볼 수 있고 때에 따라 400(요청이 잘못된 경우), 401(자원에 대한 유효한 인증이 없음), 403(요청 거부), 405(메서드를 지원하지 않음) 등이 있습니다. 따라서 ②또한 맞는 표현입니다.
- 500번대 상태 코드는 서버 에러 상태 코드를 의미합니다. 백엔드 개발에서 많이 볼 수 있는데 요청을 처리 할 수 없는 경우를 나타내는 500, 중간 서버의 통신 오류를 나타내는 502, 현재 요청을 처리 할 수 없음을 나타내는 503 등이 있습니다. 따라서 ③ 또한 맞는 표현입니다.
- ① 300번대 상태 코드는 요청한 자원이 존재하지 않음을 의미합니다.
2️⃣ 선택 미션
HTTP 요청 메시지 확인해 보기
- 가장 유명한 사이트인 네이버의 HTTP요청을 파악해보려고 했습니다.
- 맥에서 확인할 수 있는 방법은 다음과 같습니다.
- 우측 상단 햄버거 바 클릭 → More Tools → Developer Tools
- 우측 상단 햄버거 바 클릭 → More Tools → Developer Tools
- 이제 해당 부분에서 상단에 Network를 클릭해봅시다.
- 200으로 여러 페이지에 대한 정보를 받아와 조회에 성공한 것을 볼 수 있습니다.
- 300번대로 표기되어 있는 것들도 볼 수 있군요. 아마 쇼핑몰 같이 광고를 클릭하면 리다이렉션이 되는 것들을 의미하는 것 같습니다.
- 메시지 확인해보기
- 가장 유명한 사이트인 네이버의 HTTP요청을 파악해보려고 했습니다.
- 여기까지는 클라이언트에 있는 메시지를 확인해봤습니다. 이제 제가 만들고 있는 “AI 자소서 컨설턴트(Agent)”의 서버 쪽에서 발생하는 로그를 확인해보도록 하겠습니다.
- PDF를 올리고 POST요청을 했을 떄, 해당 PDF에서 텍스트를 추출하여 이력서를 마크다운 문서로 변환하여 클라이언트로 response를 해주는 함수를 구현했었는데요. 아래와 같이 200(OK) 상태로 요청을 효과적으로 처리한 것을 확인할 수 있었습니다.
- 여기서 HTTP 1.1이라는 문구도 보실 수 있는데요. 이전에는 몰랐었지만, 지속 연결이 지원되는 HTTP 연결이라는 것을 알 수 있었습니다. 아는 만큼 보이는 것 같군요.
- 여기서 HTTP 1.1이라는 문구도 보실 수 있는데요. 이전에는 몰랐었지만, 지속 연결이 지원되는 HTTP 연결이라는 것을 알 수 있었습니다. 아는 만큼 보이는 것 같군요.
- 여기서 마무리 하면 아쉬우니 코드에 일부 수정을 가해, 다른 메시지도 확인해봅시다.
- 404 에러 발생시키기 : 요청하는 코드를 서버의 잘못된 페이지로 요청하도록 path를 수정해주었습니다. 아래와 같이 404(Not Found) 에러가 바로 발생하는군요.
- 500 에러 발생 시키기 : 잘못된 파일을 받도록 백엔드의 변수를 수정했습니다. 요청을 처리할 수 없음 500(Internel Server Error)가 뜨는 군요.
- 404 에러 발생시키기 : 요청하는 코드를 서버의 잘못된 페이지로 요청하도록 path를 수정해주었습니다. 아래와 같이 404(Not Found) 에러가 바로 발생하는군요.
사이드 프로젝트에서 데모 파일의 HTTP통신을 다루고 있었던 터라, 개인적으로 이번 챕터를 통해서 프로그래밍에 필요한 많은 지식을 얻고 인사이트를 기를 수 있는 시간이었습니다.
Reference :
'혼공 학습단 > 혼자 공부하는 네트워크' 카테고리의 다른 글
[혼공 학습단] 혼공 네트워크 6주차 과제 (0) | 2024.08.18 |
---|---|
[혼자 공부하는 네트워크] DNS와 우리가 사용하는 인터넷 주소 (0) | 2024.08.09 |
[혼공 학습단] 혼공 네트워크 3주차 과제 (0) | 2024.07.21 |
[혼자 공부하는 네트워크] 네트워크 계층의 IP프로토콜 (0) | 2024.07.19 |
[혼공 학습단] 혼공 네트워크 2주차 과제 (0) | 2024.07.14 |