23.02.26 학습일기

23.02.26 학습일기

인터넷 네트워크, uri, 요청 흐름

PORT

한 번에 둘 이상 연결해야 하면?

나에게 오는 패킷들이 게임에서 오는 패킷인지 화상통화에서 오는 패킷인지 웹브라우저에서 오는 패킷인지 알 수 없다.

그래서 tcp, udp 에는 출발지 port와 목적지 port를 가지고 있었다. 여기서 port가 어떤 프로세스 인지 구분하는 것이다.

- 0~65535 할당 가능

- 0~1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음

- ftp : 20, 21

- telnet : 23

- http : 80

- https : 443

 

 

DNS 도메인 네임 시스템

IP는 기억하기 어렵고 변경될 수 있다.

DNS 서버에 도메인명을 등록할 수 있다. (단축키처럼)

 

URI(Uniform Resource Identifier) 

-URL(Locator), URN(Name) 각자 리소스의 위치와 리소스에 이름을 부여한다.

단어 뜻

Uniform : 리소스 식별하는 통일된 방식

Resource : 자원, URI로 식별할 수 있는 모든 것

Identifier : 다른 항목과 구분하는데 필요한 정보

 

URL 전체 문법 분석

scheme://[userinfo@]host[:port][/path][?query][#fragment]

https://www.google.com/search?q=hello&hl=ko

 

schme

- 주로 프로토콜 사용

- 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙(예: http, https, ftp 등)

포트는 생략 가능

https는 http에 강력한 보안 추가

 

userinfo 거의 사용하지 않음

 

host

호스트명, 도메인 명 또는 ip주소를 직접 사용 가능

 

path

리소스 경로, 계층적 구조

/home/file1.jpg

/members/100, /items/iphone12

 

query

key=value 형태

?로 시작, &로 추가 가능 ?keyA=valueA&keyB=valueB

query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터

 

fragment

ex)#getting-startes-introducing-spring-boot

html 내부 북마크 등에 사용

서버에 전송하는 정보 아님

 

 

웹브라우저 요청 흐름

 

https://www.google.com:443/search?q=hello&hl=ko

1. DNS 조회 : ip 획득

2. http요청 메시지 생성

-GET/search?q=hello&hl=ko HTTP/1.1

Host: www.google.com

3. http 메시지 전송 - 패킷이 생성되고 syn syn ack ack 해서 연결되면 서버에 전송

4. 서버에서 패킷을 까서 버리고 http 응답

HTTP/1.1 200 OK

Content-Type: text/html;charset=UTF-8

Content-Length: 3424(html데이터 길이)

<html>

...

</html>

 

5. 응답 받은 메시지를 웹브라우저가 html 렌더링하면 화면 생성

 

댓글을 작성해보세요.

채널톡 아이콘