티스토리 뷰
1. URI (Uniform Resource Identifier)
URI 는 Locator, Name 또는 둘 다 추가로 분류될 수 있다.
URI
- Uniform : 리소스 식별하는 통일하는 방식
- Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음)
- Identifier : 다른 항목과 구분하는데 필요한 정보
- URL : Uniform Resource Locator
- 리소스가 있는 위치를 지정
- URL : Uniform Resource Name
- 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화 되지 않았다.
URL 전체 문법
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 프로토콜 ( https )
- 호스트명 ( www.google.com )
- 포트 번호 ( 443 )
- 패스 ( /search )
- 쿼리 파라미터 ( q=hello&hl=ko )
1. schme
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 주로 프로토콜 사용
- 프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
- ex) http, https, ftp, etc ...
- http 는 80, https 는 443 포트를 주로 사용, 포트는 생략 가능
- https 는 http 에 보안을 추가한 것이다. (HTTP Secure)
2. userinfo
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- URL에 사용자 정보를 포함해서 인증
- 거의 사용하지 않는다.
3. host
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 호스트명
- 도메인 명 또는 IP 주소를 직접 사용 가능
4. port
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 접속포트
- 일반적으로 생략, 생략시 http 는 80, https 는 443
5. path
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 리소스 경로 (path), 계층적 구조
- ex) /members/100, /items/iphone12
6. query
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- key = value 형태
- ? 로 시작, & 로 추가 가능
- query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태
7. fragment
- scheme://[userinfo@]host[:port][/path][? query][#fragment]
- fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보는 아니다.
2. 웹 브라우저 요청 흐름
예를들어 https://www.google.com:443/search?q=hello&hl=ko 로 요청한다면
www.google.com 이라는 DNS 조회, 443의 경우 https port 번호 생략 가능
HTTP 요청 메시지
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
패킷 생성 후 데이터에 HTTP 메시지를 담아서 전달한다.
서버측에서는 HTTP 응답 메시지 패킷에 담아서 전달하고 클라이언트 측에서는 HTML 렌더링 해서 웹사이트를 볼 수 있다.
HTTP 응답 메시지
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html>
<body>...</body>
</html>
※ 출처
www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
'CS' 카테고리의 다른 글
HTTP 6. HTTP 상태코드 (0) | 2021.01.07 |
---|---|
HTTP 5. HTTP 메서드 활용 (0) | 2021.01.06 |
HTTP 4. HTTP 메서드 (0) | 2021.01.05 |
HTTP 3. HTTP 기본 (0) | 2021.01.04 |
HTTP 1. 인터넷 네트워크 (0) | 2021.01.04 |
- Total
- Today
- Yesterday
- http
- 이펙티브자바 아이템60
- 킹수빈닷컴
- 이펙티브자바 스터디
- 프로그래머스
- 백기선 스터디
- 김영한 JPA
- JPA 연관관계 매핑
- HTTP 완벽가이드
- HTTP 완벽 가이드
- dreamcoding
- 모던자바스크립트
- java
- REST API
- 패스트캠퍼스 컴퓨터공학 완주반
- 김영한 http
- Spring Security
- js array
- js api
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- BOJ
- 프로그래머스 SQL
- 백준
- GCP
- 이펙티브자바
- JS 딥다이브
- js promise
- 드림코딩
- 집 구하기
- 이펙티브자바 아이템59
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |