TCP vs UDP (12:46 에 대한 질문)
618
작성한 질문수 22
답변 1
11
안녕하세요, Hyunsang Han 님. 공식 서포터즈 codesweaver 입니다.
.
답변.
웹의 통신 규격인HTTP는 여러가지의 버전이 있습니다. (0.9, 1.1, 2, 3) 이 중 대부분을 차지하는 규격은 HTTP/1.1 입니다. 이 규격은 TCP를 기반으로 작동하는 것을 전제로 하고 있습니다. HTTP/2도 TCP를 기반으로 하며 통신 속도 향상을 위한 멀티플렉싱 등의 기술에 중점을 두고 있습니다. HTTP/3는 UDP 기반의 QUIC 를 사용한 기술이 도입되었습니다. 그러나 HTTP/3는 이직 보편화된 단계는 아니며 구글의 크롬 브라우저에서만 도입, 사용하고 있는 단계입니다.
.
하나의 페이지(웹사이트의 페이지)는 여러개의 파일들의 모음입니다(이미지, 스크립트 파일, CSS파일 등). 따라서 한 페이지를 요청하게되면 그에 파생되는 요청이 수십개, 많게는 수백개까지 발생하게 됩니다. 이러한 요청들을 효율적으로 처리하고자 하는것이 HTTP/2, HTTP/3의 주요한 목표입니다. 하나의 사이트를 불러오기 위해 브라우저는 TCP, UDP등의 모든 통신을 동시에 활용합니다. (물론 서버가 UDP를 지원한다는 전제가 있어야 합니다)
.
UDP는 영한님이 강의에서 설명하신것처럼 핸드셰이크 과정이나 데이터의 순서등을 보장하지 않습니다. 따라서 클라이언트가 이를 알아서 해결해야 합니다. 이 부분이 애플리케이션의 추가 작업이 필요한 부분입니다. 보통 '웹 개발'영역에서 애플리케이션은 브라우저를 말합니다. 브라우저에서 TCP, UDP에 대한 처리를 담당하므로 웹 개발자가 이를 구분하여 작업해야 하는 경우는 없습니다.
.
웹사이트 프로토콜 확인하기
크롬 브라우저의 개발자도구를 켠 상태로 '네트워크'탭을 누르신 후, 여러가지 홈페이지를 돌아다니다 보면 각 파일들이 어떤 프로토콜로 요청, 응답되었는지 확인하실 수 있습니다. (프로토콜 항목은 기본값이 안보임 상태일 수 있는데, 네트워크 탭의 제목 탭에서 마우스 우클릭 후 프로토콜 항목을 체크해주세요) http/1.1, h2(http/2) 등의 여러가지 프로토콜로 데이터르를 응답받는 것을 확인하실 수 있습니다.

.
감사합니다.
캐시 관련 질문입니다.
0
616
1
ETag 질문입니다.
0
727
1
캐시의 설정 주체
0
534
1
영속쿠키 질문입니다.
0
503
1
협상(accept-language)
0
686
1
에러 코드의 구현 주체
0
438
1
웹서버가 구현?
0
596
1
필수헤더?
1
560
1
Host와 Port
0
774
1
다른 도메인이 같은 포트를 사용하는 경우
0
1259
1
표준 헤더와 임의 헤더
0
534
1
POST 등록 후 Location 헤더
0
569
1
프로세스의 상태가 변경되는 경우에 Post 사용
1
1809
1
지속연결에 대해서.
0
692
1
제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.
0
593
1
캐시 내용중 no cache 일때
0
358
1
DNS 서버 관련 질문
1
748
1
캐시로 저장된 파일의 유효기간은 얼마나 되나요?
0
662
1
웹브라우저 요청흐름 질문입니다.
0
847
1
캐시 무효화 질문드립니다
0
561
1
리다이렉트와 리다이렉션 차이?
0
2595
1
쿠키 및 세션 관련 질문드립니다
0
586
1
HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.
0
1645
1
header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?
0
480
1





