nc 명령어를 사용하여 웹서버 (멀티패스)와 클라이언트 (웹 브라우저 접속) 구성의 간단한 통신을 테스트 해보고자 한다.
nc 명령어
- nc 란 TCP 또는 UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽고 쓰는 용도로 사용된다.
- 상대 포트 상태 확인 또는 서버가 되어 원격 서버에서 접속이 가능한지 확인하는 용도로도 사용된다.
- 사용법 : $ nc <옵션> <호스트> <포트>
실습
1. 멀티패스 (우분투 가상환경) 에서 포트 8000번에 LISTEN 모드 실행
- 별다른 응답이 발생하지 않는다.
2. 웹 브라우저를 실행하여 서버 IP의 8000번 포트로 진입한다.
3. 웹 브라우저의 데이터 요청에 대한 내용이 서버에게 출력된다.
HTTP 메시지 요청 구조 중 몇가지를 살펴본다.
GET / HTTP / 1.1 // Start Line (GET 메소드를 통한 데이터 요청)
HOST : 192.168.64.2 : 8000 // 요청하는 호스트에 대한 호스트 명 및 포트번호 (필수항목)
Connection : keep-alive // 현 TCP 커넥션을 유지
User-Agent // 클라이언트 소프트웨어 (웹 브라우저) 명칭 및 버전 정보
Accept // 클라이언트 자신이 원하는 미디어 타입 및 우선순위
4. 클라이언트의 요청에 대한 응답을 전송한다.
- html 타입, UTF-8 인코딩 방식의 데이터 전송
- 'A webpage served with netcat' 문구 출력 예상
5. 브라우저에 데이터 출력 확인
6. 웹 브라우저에서 F12(개발자도구)를 통하여 요청 내용 확인
- Header
-Timing
7. 간단한 웹 서버 클라이언트 통신 실습 완료
- HTTP 요청 및 응답 데이터 분석
**참고링크**
HTTP 요청에 대한 부가적인 내용은 아래 게시물 링크 참고 바랍니다.
https://chance-story.tistory.com/8
http://www.ktword.co.kr/test/view/view.php?m_temp1=5905
https://sh-safer.tistory.com/74
'DevOps > DevOps' 카테고리의 다른 글
CORS 란? (0) | 2022.12.16 |
---|---|
[Mac OS]Mac 환경에서 nginx 실행하기 (0) | 2022.12.15 |
[Mac OS]HTTP 요청 메소드 및 상태코드 (Postman, OpenWeatherMap 사용) (0) | 2022.12.10 |
HTTP Message 구성 및 특징 (0) | 2022.12.08 |
클라이언트 - 서버 아키텍처 (2티어 아키텍처, 3티어 아키텍처, API) (0) | 2022.12.06 |