메모와일기장 2022. 1. 25. 08:55

[ DNS ]

IP는 기억이 어렵고 추후 변경이 가능하다

이를 해결하기 위한 것이 DNS == IP주소를 이름으로 바꾸는 개념

 

[ URI와 웹 브라우저 요청의 흐름 ]

1. URI : Uniform Resource Identifier

- URI는 로케이터 ,이름 또는 둘 다로 추가 분류될 수 있다

(로케이터 : 리소스가 있는 위치를 지정 , 이름 : 리소스의 이름- 위치는 변하지만 이름은 변하지 않는 장점 )

- 결국 URI는 URL(로케이터) + URN(네임) 을 포괄한는 개념

-하지만 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음

-결국 흔히 사용하는것은 URL의 개념

-URL : scheme://[userinfo@]host[:port][/path][?query][#fragment] 의 작성법을 가짐

 

[ 웹브라우저의 요청흐름 ] 

1. 클라이언트 : DNS를 조회 + HTTPS PORT 생략 + HTTP 요청메시지 생성

2. 생성되면 TCP 등을 추가하고 확인 후 서버로 전송

3. 서버가 받으면 똑같이 응답

 

[ HTTP ]  - Hyper Text Transfer Protocol == 인터넷에서 정보를 주고받는 규칙

1. HTTP 메시지에 모든 것을 전송한다 ( 텍스트, 이미지, JSON, 영상...)

2.  1.1 버전을 기본으로 2, 3 발전 중 ( 1.1 ,2 : TCP  / 3 : UDP 주로 사용 )

--현재는 1.1을 주로 사용하는 상태임

3. 클라이언트 서버 구조

4. 무상태 프로토콜 지향

 

무상태 프로토콜? (stateless)

1. 서버가 이전 상태를 유지하지 않는다 == 요청을 받으면 보관하지 않고 응답만 계속 보냄

2. 서버가 바뀌어도 그대로 진행됨 == 무제한 서버 증설 가능

3. 한계가 존재하는 경우 생김 ( ex 로그인 정보 유지 )

4. 정보를 매번 다 보내야하므로 정보가 커짐

(vs 상태유지 == 요청을 받으면 보관하고 응답 == 서버가 바뀌면 유지 정보를 다시 전달해주지 못할 수 있어 오류)

--일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지

--상태 유지는 최소한만 사용하는 것이 좋다

 

[비연결성]

1. 연결을 유지하는 모델 : TCP / IP

2. 연결을 유지하지 않는 모델 : HTTP

-- 처리 요청이 적으면 매우 효율적이나 페이지 넘어가면 매번 TCP 연결 절차로css, js등 매번 다운로드 발생 

-- 지금은 HTTP 지속 연결(Persistent Connections)로 문제 해결