Back-End/HTTP
HTTP - URI & 웹 브라우저 요청 흐름
Meluu_
2023. 11. 2. 22:48
🔹URI
우리가 흔히 브라우저를 사용하여 특정 사이트에 들어갈 때 사용하는 것이
바로 URL이다. 그렇다면 URI는 무엇일까?
URI 뜻
Uniform : 리소스 식별하는 통일된 방식
Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음)
Identifier : 다른 항목과 구분하는 데 필요한 정보 (식별자)
URI라는 큰 개념안에 URL 과 URN 이 들어있다.
URL, URN
Locator : 리소스 위치 지정
Name : 리소스에 이름을 부여 ( 사용을 거의 안한다.)
📊 URL(URI) 분석
https://www.google.com/search?q=http&hl=ko
scheme://[userinfo@]host[:port][/path][?query][#fragment]
- scheme : 사용할 프로토콜 (https 주로 사용)
- 프로토콜 : 자원 접근 방식에 대한 약속 규칙
- 포트는 생략 가능
- https 는 http에 강력한 보안을 추가
HTTP Secure
(데이터 전송의 보안을 강화하기 위해 암호화)
- userinfo : URL에 사용자 정보를 포함해서 인증 (거의 사용 X)
- 호스트명(www.google.com)
- 도메인 명 or IP주소 직접 사용 가능
- 포트 번호(443) // http (80)
- 패스(/search)
- 리소스 경로(path), 계층적 구조
- /Suport/join
- /download/file1.mp4
- 쿼리 파라미터(q=http&hl=ko)
- key=value 형태
- ?로 시작, &로 추가 가능 ?keyA=valueA&keyB=valueB
- query parameter, query string등으로 불림
- fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 X
〰️ 웹 브라우저 요청 흐름
https://www.google.com <:443(생략됌)>/search?q=http&hl=ko
- 웹 브라우저가 DNS를 조회하여 IP주소를 획득
- 웹 브라우저가 HTTP 요청 메시지 생성
- SOCKET 라이브러리를 통해 전달
- TCP/IP 연결(IP, PORT) - 3 way handshake 시행
- 데이터 전달
- TCP/IP 패킷 생성, HTTP 메시지 포함
- 이더넷 프레임을 감싸서 인터넷을 통해 서버에 전송
- 서버가 응답 패킷을 전달 (똑같이 TCP/IP패킷으로 HTTP메세지을 감싼 형태)
- 도착한 패킷을 웹 브라우저가 HTML 렌더링 하여 화면 출력
이번 학습을 통해 URL을 보게 되면 각 항목이 무엇인지 약간이나마 분석할 줄 알게 되었다.
천천히 정리한 것을 복습하면서 부족한 부분을 채워나가자!
출처 및 참고자료