김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하면서 HTTP 내용을 정리한다.
자세한 정보가 궁금하면 수강을 추천드립니다.
URI (Uniform Resource Identifier)
리소스를 식별하는 통합된 방법이다.
URI? URL? URN?
비슷한 용어가 존재한다. 어떻게 구분할까?
URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다.
[https://www.ietf.org/rfc/rfc3986.txt]
간단히 정리하면 다음과 같다.
URL - 리소스의 위치
URN - 리소스의 이름
URI 단어 뜻
- Uniform : 리소스 식별하는 통일된 방식
- Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음)
- Identifier : 다른 항목과 구분하는데 필요한 정보 (주민번호 같은 것)
URL, URN 단어 뜻
- URL (Uniform Resource Locator) - 리소스가 있는 위치를 지정
- URN (Uniform Resource Name) - 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않음.
간단히 URI와 URL를 같은 의미로 이야기됨.
URL 분석해보자.
https://www.google.com/search?q=hello&hl=ko
URL 전체 문법
URL를 분석해보면 다음과 같은 구조가 나온다.
- scheme://[userinfo@]host[:port][/path][?qurey][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
scheme
- 주로 프로토콜에 사용
- 프로토콜 : 어떤 방식으로 자원에 접근할 것인지 약속 규칙
ex) http, https, ftp 등등
- http는 80 포트, https는 443 포트를 주로 사용, 포트는 생략이 가능하다
* https는 http에 보안이 추가된다. (HTTP Secure)
userinfo
- URL에 사용자 정보를 포함해서 인증
* 거의 사용하지 않음
PORT
- 접속포트
* 일반적으로 생략가능, 생략 시 http는 80, https는 443 이 붙음
path
- 리소스 경로(path), 계층적 구조를 갖는다.
ex) /home/file1.jpg, /members, /members/100
qurey
- key=value 형태
- ?로 시작, &로 추가 가능하다
ex) ?keyA=valueA&keyB=valueB
- qurey parameter 혹은 query string 등으로 불림. 웹 서버에 제공하는 파라미터로 문자 형태
fragment
- https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-introducing-spring-boot
- html 내부 북마크로 사용됨
* 서버로 전송되는 정보는 아님
웹 브라우저 요청 흐름
https://www.google.com/search?q=hello&hl=ko 요청하면 웹 브라우저는 어떻게 반응하게 될까?
1. URI를 입력한다.
2. DNS 서버로 IP를 알아온다. 생략된 PORT는 scheme로 찾아낸다.
3. HTTP 요청 메시지를 생성한다.
4. 클라이언트가 서버로 HTTP 메시지를 전송한다.
전달된 패킷은 서버에 도착되면 서버가 패킷 정보를 까서 HTTP 메시지를 확인한다.
5. 서버에서 클라이언트로 HTTP 응답 메시지를 전송한다. (응답 메시지는 자세한 사항은 다음 수업에)
6. 클라이언트는 HTTP 응답을 받아서 웹 브라우저가 HTML 렌더링해서 보여준다.
'교육 및 인강 > 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한' 카테고리의 다른 글
HTTP 상태코드 (0) | 2021.12.10 |
---|---|
HTTP 메서드 활용 (0) | 2021.12.10 |
HTTP 메서드 (0) | 2021.12.09 |
HTTP 기본 (0) | 2021.12.09 |
인터넷 네트워크 (0) | 2021.12.08 |