
URI= 자원을 식별하는 방법, 크게 2가지 방법이 있다.
URL = 자원이 이 위치에 있어요~!
URN = 자원의 이름

URN은 잘 쓰이지않고 URL 이 많이 쓰인다.
Uniform = 리소스를 식별하는 통일된 방식
Resource = 자원, URI로 식별할 수 있는 모든것(제한없음)
Identifier = 다른 항복과 구분하는데 필요한 정보



HTTP 특징
클라이언트 서버 구조
무상태 프로토콜(stateless) = 서버가 문맥을 보존하지않는다.
응답서버를 쉽게 바꿀수 있다 즉 무한한 서버 증설이 가능하다.
하지만 상태 유지를 해야하는 경우가 있다. 일반적으로는 브라우저 쿠키와 서버 세션등을 사용해서 상태유지
데이터를 또한 많이 보내야한다.
비연결성 = 클라이언트가 요청을 보낼 때만 연결을 해주고 요구가 끝나면 끊어버리는 방식
서버자원을 매우 효율적으로 관리 할 수 있다.
매번 3way handshake 시간을 추가해줘야 한다. 매번 연결 종료시간이 반복되어서 낭비됨으로 아래와 같은 방법으로 해결한다.

일정시간 연결을 지속해줌으로서 해결해준다. HTTP 3에서는 연결 시간조차 줄여버리는 방식을 쓴다고 한다.
HTTP 메세지


요청 메세지
start - line = request - line / status - line
request -line = method SP(공백) request-target SP HTTP-version CRLF(엔터) 이런식으로 총 3개의 정보가 들어간다.
HTTP 메서드 = GET,PPOST, PUT, DELETE ... 서버가 수행해야 할 동작 지정
request-target = 절대경로 "/" 로 시작하는 경로 (요청메세지, 요청대상)
응답 메세지
start - line = request - line / status - line
status-line = HTTP-version SP status-code SP reason-phrase CRLF
HTTP 상태코드
200:성공
400:클라이언트 요청 오류
500: 서버내부오류
reason-phrase = 사람이 읽은 수 있는 짧은 글
HTTP 헤더
header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용)
field-name은 대소문자 구분을 하지않음 나머지는 다한다.
HTTP전송에 필요한 모든 부가정보 = 메세지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보, 서버 애플리케이션 정보, 캐시관리정보 ...
필요시 임의의 헤더 추가 가능
HTTP 메세지 바디
실제 전송할 데이터 = HTML 문서, 이미지 ,영상 JSON 등 byte로 표현할 수 있는 모든 데이터가 들어간다.

HTTP 2 까지는 TCP/IP를 많이쓰지만 벌써 UDP/IP 를 쓰는 HTTP3가 다 차지 하고 있는것을 볼 수 있다.
'Network > Network(Http)' 카테고리의 다른 글
김영한 (HTTP 웹 기본지식 9) HTTP 헤더 2 (0) | 2021.02.22 |
---|---|
김영한 (HTTP 웹 기본지식 8) HTTP 헤더 1 (0) | 2021.02.21 |
김영한 (HTTP 웹 기본지식 7) HTTP 상태코드 (0) | 2021.02.20 |
김영한 (HTTP 웹 기본 지식1 ) 인터넷 네트워크 (0) | 2021.02.15 |