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 렌더링하면 화면 생성
댓글을 작성해보세요.