Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- JdbcTemplate
- 지연 로딩
- docker
- Spring Data JPA
- AWS
- Spring
- JPA
- JPQL
- Spring Container
- 쿠버네티스
- 컨테이너
- kafka
- Web
- MSA
- 페이징
- redis
- DI
- mybatis
- 스프링 부트
- JWT
- docker compose
- dockerhub
- @Transactional
- Dead Letter Queue
- @ComponentScan
- CORS
- 서블릿 컨테이너
- Routing Key
- DLQ
- securitycontextholderfilter
Archives
- Today
- Total
look-forest
URI와 웹 브라우저 요청 흐름 본문
URI
Uniform Resource Identifier
리소스를 식별하는 통일된 방식
URI? URL? URN?


URN 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화되지 않아 거의 쓸 일이 없다
따라서 URI와 URL은 거의 동일한 의미로 쓰인다고 생각하면 된다.
URL 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
예) https://www.google.com/search?q=hello&hl=ko
- scheme: 주로 프로토콜 사용(어떤 방식으로 자원에 접근할 것인가 하는 약속)
- userinfo: URL에 사용자 정보를 포함해서 인증(거의 사용x)
- host: 호스트명(도메인명 or IP 주소 직접 사용)
- port: 접속 포트(일반적으로 생략, 생략시 http는 80, https는 443)
- path: 리소스 경로(계층적 구조) 예) /home/file1.jpg, /members/100
- query: key=value 형태. ?로 시작, &로 추가 예예)? key1=value1&key2&value2
query parameter, query string 등으로 불림. (웹서버에게 제공하는 파라미터 / 문자 형태) - fragment: html 내부 북마크 등에 사용(서버에 전송하는 정보는 아님)
호스트와 도메인
도메인은 그룹의 개념이고 호스트는 그룹에 속한 컴퓨터나 시스템 하나하나를 말한다.
호스트 네임은 사람의 이름으로, 도메인 네임은 사람의 성으로 비유할 수 있다.
'최재량'과 '최재림'은 같은 '최'씨 집안의 사람이지만 '재량'과 '재림'이라는 이름으로 구분된다.
kin.naver.com과 mail.naver.com과 cafe.naver.com에서
kin, mail, cafe 등은 호스트 네임이며, naver.com은 도메인 네임이 됩니다.
상대경로
상대 경로는 '/'로 시작하지 않는다.
현재 URL이 속한 계층 경로에 추가된다.
ex)
- 현재 경로: /members/join
- 상대 경로: save
- 결과: /members/save
웹 브라우저의 요청 흐름

1. HTTP 요청 패킷 생성 과정



2. 요청 패킷 전송 및 도착
3. 응답 메시지 생성

4. 응답 패킷 생성 → 전송 → 도착
5. 응답 메시지로 받은 HTML 렌더링

참고 자료 & 이미지 출처
모든 개발자를 위한 HTTP 웹 기본 지식 (김영한 님)
컴퓨터 네트워킹 : 하향식 접근 7판 (JAMES F.KUROSE)