최근에 응용 개발자 한 분이 "대외계 통신할 때 Http를 쓰나요? tcp/ip를 쓰나요? "라고 질문을 하셨는데 http쓰시면되여 라고 했는데 뭔가찝찝
좀 쉽게 설명해 드리고 싶었는데 머리 신호가 정지
평소에 네트웍 이슈가 있을 때마다 구글링 해서 찾아볼 때가 있는데 다시 한번 머릿속에 정리할 겸 작성해 보았습니다.
TCP/IP의 설명
TCP(Transmission Control Protocol) 는 전송을 제어하는 프로토콜로, 신뢰도가 높은 데이터 전송을 가능하게 합니다.
TCP는 애플리케이션이 전송한 데이터를 그 형태 그대로 상대방에게 확실하게 전달합니다. TCP는 서버가 송신할 때와 서버가 수신한 후 애플리케이션에게 전달할 때로, 상대 서버까지 전송하는 부분은 하위 계층이 IP에 모두 위임됩니다.
TCP가 하는 일
- 포트 번호를 이용해서 데이터 전송
- 연결 생성
- 데이터 보증과 재전송 제어
- 흐름 제어와 폭주 제어
IP(Internet Protocol)는 지정한 대상 서버까지 전달받은 데이터를 전해는 것입니다.
IP가 하는 일
- IP주소를 이용해서 최종 목적지에 데이터 전송
- 라우팅
네트워크 책에서 엄청 이야기가 나왔던 OSI 7계층에서 TCP/IP는 4 계층(TCP는 4 계층, IP는 3 계층에 속합니다.)이라고 보시면 됩니다. 요즘은 웹 서비스에 맞게 단순화시켜서 TCP/IP 4 계층이 존재합니다. 아래 하단 이미지 참고
Http의 설명
HTTP는 최상위 계층인 애플리케이션 계층에 동작합니다. 개념적으로만 봤을 때 HTTP는 TCP/IP 계층 위에 동작하는 것이라고 볼 수 있습니다. (개발자분 입장에서는 Http로 통신하나요?라고 묻는 게 좀 더 정확한 질문이었을 것 같네요.) 애플리케이션 계층에는 http 말고도 smtp, IMAP 등의 다양한 프로토콜이 사용될 수 있습니다.
http의 요청(Request)과 응답(Response)
Htpp 요청 시 중요한 것은 서버에 던지는 명령어입니다.
Get은 파일 요구
Post는 데이터를 전송
헤더 부분에 들어가 있는 정보 : User-Agent 브라우저 식별 정보(버전, 브라우저 유형), Cookie(세션 식별자)
아래 그림은 크롬 브라우저에서 F12로 개발자 모드를 열고 Network탭에서 확인한 Requset 정보입니다. 이 글을 임시 저장할 때 날아가는 요청의 모양인데 Post형식으로 요청됨을 알 수 있습니다. 자세히 보면 날라가는 Contents내용도 보이네요.
실무에서 사용하는 용어 정리
이더넷 계층 - L2 또는 레이어 2
전송계층(TCP 계층) - L4 또는 레이어 4
애플리케이션 계층 - L5, L6, L7
OSI참조모델
우선 네트워크를 다룰 때 피해 갈 수 없는 부분이 OSI참조 모델입니다. 현재 사용되고 있지는 않지만, 이 계층 구조 개념은 논리적으로 한 번은 이해해야 합니다. 결국 네트워크에 물리적으로 있는 물리 계층부터 애플리케이션까지 여러 단계에 걸쳐서 통신을 위한 계층들이 존재하고 아래 모델을 참조로 실무 커뮤니케이션에서 사용한다 정도만 알아 주시면 될 것 같습니다.
네트웍 쪽도 책을 찾아보고 관련 정보를 검색하다 보니 좀 더 자세하게 보아야 하는 부분들이 많네요.
중요하게 더 정리해야 되는 내용이 있으면 또 포스팅하겠습니다.
오늘은 http와 tcp/ip에 대해서 한번 정리해 봤습니다.
'IT > Digital' 카테고리의 다른 글
클린코드 - 시큐어코딩 (CWE 497취약점) (0) | 2021.05.24 |
---|---|
스마트폰 전체 화면 캡처방법(스크롤 캡처) (1) | 2021.05.18 |
브라우저 화면 캡처 방법 (스크롤 캡처 포함) (0) | 2021.04.20 |
쉽고 강력한 화면 캡처 방법 (블로그, 문서작성) (0) | 2021.04.18 |
QR체크인 빠르게 하는 방법(카카오톡, 스마트워치) (0) | 2021.03.09 |
댓글