-
HTTP 웹 기본 지식 2편CS/네트워크 2024. 12. 1. 15:27
출처: https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
모든 개발자를 위한 HTTP 웹 기본 지식 강의 | 김영한 - 인프런
김영한 | 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연
www.inflearn.com
HTTP 웹 기본 지식 1편 <- click
URI, URL, URN 이란
- URI는 locator, name 또는 둘 다 추가로 분류될 수 있다.
- URI 안에 URL과 URN이 있다고 생각하자.
- URI란?
- Uniform: 리소스 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것(제한없음)
- Identifier: 다른 항목과 구분하는 데 필요한 정보
- URL: locator -> 리소스가 있는 위치를 지정
- URN: Name -> 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- urn:isbn:8960777331 (어떤 책의 isbn URN)
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음.
- 그렇다면 1편에서 배운 DNS와 뭔가 헷갈린다. 둘의 차이는 뭘까?
- URN은 책의 ISBN 번호 처럼 이 자원의 이름은 무엇인가? 에 대한 답변이고, DNS는 도서관의 카탈로그처럼 이 자원이 어디에 있는가를 알려주는 역할을 한다. 쉽게 말해, 도서관의 과학 영역이라는 이름처럼 자원을 고유하게 식별한다. 어디에 위치해 있는 지는 중요하지 않다(URN). 과학 영역은 도서관 에어컨 뒤쪽에 있다 라는 식으로 위치를 알려주는 DNS. 즉, URN은 이게뭐지? DNS는 그게 어디에 있지 를 대답한다고 생각하면 편리하다.
URL 전체 문법
https://www.google.com:443/search?q=hello&hl=ko scheme://[userinfo@]host[:port][/path][?query][#fragment]
- scheme
- 주로 프로토콜이 사용된다. ex) http, https, ftp
- userinfo
- URL에 사용자 정보를 포함해서 인증
- 구글 로그인했는 데 URI로 내 아이디와 비밀 번호가 보인다면? 보안상의 이유로 거의 사용하지 않음.
- host
- 호스트명, 도메인명 또는 IP주소를 직접 사용 가능
- 맞다. 여기서 DNS 서버에 도메인명을 왔다리 갔다리 하는 거다.
- PORT
- 접속 포트, 일반적으로 생략, 생략 시 http = 80, https = 443
- PATH
- 리소스 경로, 계층적 구조로 이루어져야 좋다.
- 예를 들어,
- /home/file1.jpg
- /members
- /members/100
- /items/iphone12
- QUERY
- key=value 형태
- ?로 시작하고 &로 추가 가능하다.
- ?keyA=valueA&keyB=valueB
- query parameter 혹은 query string 이라고도 부른다.
- 그 이유는 웹 서버에 제공하는 파라미터
- URL 에 들어가는 key-value 값이 정수여도 문자로 인식하기 때문에 string
- FRAGMENT
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 아님
웹 브라우저 요청 흐름
https://www.google.com:443/search?q=hello&hl=ko
그리고 HTTP 요청 메시지를 보낸다.
GET /search?q=hello?hl=ko HTTP/1.1
Host: www.google.com- 아직 모르지만, 대충 일단 이렇구나 미리 알아만 두자.
- GET method를 사용했고
- path와 query를 날렸고,
- HTTP버전 1.1 이란다.
- host는 www.google.com
- 위 사진과 HTTP 메시지를 서버에 전달하면, 요청한 거에 대한 응답을 서버가 보내주겠지
- HTTP 응답 메시지
HTTP/ 1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3424
<html>
<body> ... <body>
</html>- HTTP 버전 1.1
- 200 OK (뒷 편에서 나옴) 지금은 성공적으로 응답을 보냈다. 문제 없다 라고 생각하자.
- Content-Type: html 형태이고 UTF-8 버전이다.
- Contetn-Length: 길이 뭐 이 정도 된다.
- 보낸 html 형태
- 그럼 클라이언트(웹 브라우저)는 응답 패킷을 받고 HTML 랜더링을 할 것이다.
'CS > 네트워크' 카테고리의 다른 글
HTTP 웹 기본 지식 4편 (2) 2024.12.02 HTTP 웹 기본 지식 3편 (0) 2024.12.01 HTTP 웹 기본 지식 1편 (1) 2024.12.01 [네트워크] 클라이언트 - 서버 모델 (2) 2024.10.31 Socket, Port, TCP connection 개념 (0) 2024.05.22 - URI는 locator, name 또는 둘 다 추가로 분류될 수 있다.