개발의변화
URI,URL,URN 그리고 HTTP 본문
URI : locater,name 또는 둘 다 추가로 분류할 수 있다
Uniform: 리소스 식별하는 통일된 방식
Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
Identifier: 다른 항목과 구분하는데 필요한 정보
URI(Resource Identifier) 안에 URL(Resource Locator), URN(Resource Name)있다
URL: fooL//example.com:8042 : 리소스가 있는 위치를 지정
URN: urn:example:animal:ferret:nose => 이름을 부여하면 찾기 힘들 수 있다, 리소스에 이름을 부여
-> 위치는 변할 수 있지만, 이름은 변하지 않는다
->URN이름만으로 실제 리소스 위치를 찾을 수 없다
URL문법:
scheme(스키마)://[userinfo@]host[:port][/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hl=ko
- 프로토콜(https):어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙(http는 80, https 443 포트 주로 사용, 포트는 생략 가능)
http와 https의 차이 - 호스트명(www.google.com)
- 포트번호(443)
- 패스(/search) 리소스 경로, 계층적 구조 (/../.../)
- 쿼리 파라미터(q=hello&hl=ko) key=value 형태, ?로 시작 ,&로 추가 가능 ?keyA=valueA&keyB=valueB
- fragment => html 내부 북마크, 서버에다 전송 하는 것이 아님
브라우저 작동 원리 (www.google.com) 입력하면
웹 브라우저가 웹 서버에 웹 페이지 요청을 하면 웹 서버는 웹 페이지 응답을 한다.
즉, 서버가 브라우저에게 HTML 문서를 전달하고 브라우저는 이를 읽고 해석한 후 Client에게 보여준다
HTTP(HyperText Transfer Protocol):html,이미지,음성,xml,서버 간의 데이터 주고 받을 때도 모든 것이 HTTP
HTTP/0.9: GET메서드만 지원, HTTP 헤더X
HTTP/1.1: 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전
HTTP/3 진행중: TCP 대신에 UDP 사용,성능 개선
TCP: HTTP/1.1, HTTP/2
UDP: HTTP/3
HTTP 특징
- 클라이언트 서버 구조
Request Response 구조
클라이언트는 서버에 요청을 보내고, 응답을 대기
서버가 요청에 대한 결과를 만들어서 응답
- 무상태 프로토콜(stateless), 비연결성
서버가 클라이언트의 상태를 보존하지 않음
장점: 서버 확장성 높음 (수평 확장 유리)
단점: 클라이언트에 추가 데이터를 줘야함
상태유지: 중간에 다른 사람으로 바뀌면 안된다
(중간에 다른 사라믕로 바뀔 때 상태 정보를 다른 사람에게 알려줘야 한다(
무상태: 중간에 다른 사람으로 바뀌어도 된다
갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.
stateless 한계:
모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다
무상태 : 로그인이 필요 없는 단순한 서비스 소개 화면
상태 유지: 로그인
로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지
일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
상태 유지는 최소한만 사용
-HTTP 메시지
-단순함, 확장 가능
connectionless: 최소한의 자원 유지를 할 수 있음 한 요청에 대한 응답만 하고 연결을 끊어버림
HTTP는 기본이 연결을 유지하지 않는 모델
일반적으로 초 단위의 이하의 빠른 속도로 응답
1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음
서버 자원을 매우 효율적으로 사용할 수 있음
connection 한계와 극복:
TCP/IP 연결을 새로 맺어야함
웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 JS,이미지,파일등 수많은 자원이 다운로드(HTTP )
'네트워크' 카테고리의 다른 글
TCP/IP 4계층 (0) | 2023.04.04 |
---|---|
2. IP(Internet Protocol) (0) | 2023.04.03 |
1. 인터넷 구성의 개념 (0) | 2023.04.03 |
IP,TCP,UDP 프로토콜 (0) | 2023.03.20 |