📌 URI(Uniform Resource Indentifier) 리소스를 식별하는 통합된 방법
- URL Uniform Resoure Locator: 리소스가 있는 위치를 지정
- URN Uinform Resource Name: 리소스에 이름을 부여
✏️URN은 거의 쓰지않기 때문에 URI = URL이 될 수 있다.
📌 URL 전체 문법
schema://[userinfo@]host[:port]/[/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hl=ko
1. schema
스키마는 프로토콜이 사용 됨.
프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
ex) https, http, ftp 등
http는 80포트, https는 443 포트를 주로 사용, 포트는 생략 가능
https는 http에 보안 추가(HTTP SECURE)
2. [userinfo@]
거의 사용하지 않음
3. host
도메인명 또는 IP 주소를 직접 입력
4.PORT
접속포트
일반적으로 생략, 생략시 http는 80, https 443
5. path
path는 리소스 경로(계층적 구조)
6. query
key=value 형태
?로시작 &로 추가 가능, ?keyA=valueA&keyB=valueB
query parameter, query string으로 불림, 웹서버에서 제공하는 파라미터, 문자 형태
7. fragment
잘 사용하지 않음
html 내부 북마크 등에 사용
서버에 전송하는 정보 아님
📌 웹 브라우저 요청 흐름
https://www.google.com:443/search?q=hello&hl=ko 접속했을 때
1. www.google.com을 DNS에 조회해서 IP 200.200.200.2 를 응답받음 (HTTPS PORT 443 생략)
2. HTTP요청 메시지를 생성함
3. SOCKET 라이브러리를 통해 전달
- A. TCP/IP 연결(IP,PORT)
- B. 데이터 전달
4. TCP/IP 패킷 생성, HTTP 메시지 포함
5. 구글 서버에서도 HTTP응답 메시지를 만들어서 응답패킷 생성하여 보냄
6. 클라이언트에서는 이 패킷을 웹 브라우저에서 HTML랜더링을 한다. (응답 메시지가 HTML이였을 경우에)
※ 김영한 - 모든 개발자를 위한 HTTP 웹 기본 지식 수강 후 정리 목적으로 작성 되었습니다.
'프로그래밍 > CS' 카테고리의 다른 글
IoC, DI (without Spring) (0) | 2025.04.01 |
---|---|
쿠키와 캐시 (1) | 2024.12.19 |
HTTP 상태 코드 (2) | 2024.12.17 |
HTTP와 HTTP 메서드 (2) | 2024.12.17 |
IP 와 TCP/UDP (0) | 2024.12.16 |