브라우저로 웹사이트에 접속할 때 도메인을 입력하면 일어나는 일들
내용 출처 : https://preamtree.tistory.com/35 , https://hello-judy-world.tistory.com/189
숫자로 되어있는 긴 ip 주소는 사람이 외우기 어렵다는 단점을 가지고 있다.
그래서 ip주소를 특정 별명을 매핑 해준 것이 도메인 주소이다.
DNS는 도메인 이름과 ip주소를 저장하고 있는 분산 데이터베이스이다.
이러한 DNS 서버는 확장성을 위해 많은 서버를 이용하여 계층 형태로 분산되어있다.
브라우저에 도메인을 입력하면 어떤 과정을 거치나?
1 브라우저의 캐시 확인
자체적으로 유지하는 캐시를 검사하여 도메인에 대한 ip주소를 찾으려고 시도한다.
브라우저 -> OS -> router -> ISP 순으로 확인
* 로컬 PC 의 hosts 파일 확인
브라우저는 도메인의 매핑 정보가 존재하는지 확인한다.
C:/Windows/System32/drivers/etc
하위의 hosts 파일은 ip 주소와 도메인을 매핑해주는 리스트이다.
예를 들어 abcd.com 이라는 도메인에 네이버의 ip를 매핑시켜놓으면
abcd.com 에 접속했을 때 네이버에 접속되는 것!
인터넷을 제공하는 회사가 운영하는 DNS 서버인 로컬 DNS 서버에 질의요청
로컬 DNS 에서까지 뒤졌는데 없으면 외부에 요청!
2 DHCP&ARP
DHCP : 호스트의 ip주소 및 tcp/ip 설정을 클라이언트에 자동으로 제공하는 프로토콜
DHCP 프로토콜은 보통 네트워크에 새로운 장치가 연결되거나 부팅 시 자동으로 실행되어 네트워크 구성 정보를 얻는다. 이 때 DNS 서버의 ip주소도 함께 받아온다.
ARP : ip주소를 물리적인 mac 주소로 매핑하는 프로토콜
ARP 프로토콜을 사용하여 DNS 주소에 대한 mac 주소를 찾아서 DNS Query 를 날린다.
3 DNS Query
DNS 서버들을 검색해서 해당 도메인의 ip주소를 찾는다.
찾을 때까지 DNS 서버 계층을 오가며 반복적을 검색한다.
www.naver.com 의 경우
루트(.) -> com -> naver -> www 구조
Root -> TLD(Top Level Domain) -> Authoritative DNS
4 DNS 캐싱
응답받은 ip주소를 호스트이름과 쌍으로 DNS 서버에 저장한다.
다음 번에 같은 주소를 입력했을 때 브라우저가 캐싱된 DNS 를 확인할 수 있다.
5 받은 ip주소로 TCP 통신
6 HTTP 프로토콜 요청으로 서버에게 웹페이지를 요구
완전히 이해되지 않았다.
네트워크 공부 더 해보고 다시 돌아오면 더 잘 이해할 수 있지 않을까...
리눅스 권한 명령어
참조 : https://danmilife.tistory.com/8
권한 확인
ls -l
-rwxrwr-- 1 eun eun 0 Jan 30 16:58 test
- (-: 일반, d:디렉토리, l: 링크) / rwx (소유자권한) / rw (그룹권한) / r (다른 사용자 권한)
/ 1 (링크수) / eun (소유자) / eun (소유자 그룹) / 0 파일크기 / Jan 30 16:58 (수정날짜) / test (파일이름)
링크 수 : 해당 파일이 몇 개 있는지
read = 4 write = 2 excute = 1
rwxr--r-- = 7 + 4 + 4 = 15
권한 변경 (chmod)
chmod [권한][파일 또는 디렉터리]
g : 그룹, u : 사용자, o : 다른 사용자, a : 모두
+ 로 부여, -로 삭제
chmod g+rw test // 해당 그룹에 속하는 유저에게 읽기/쓰기 권한 부여
chmod u+r test // 해당 파일을 소유한 사람에게 읽기 권한 부여
chmod a+rwx test // 모두에게 읽기/쓰기/실행 권한 부여
chmod g-rw test // 해당 그룹에 속하는 유저에게 읽기/쓰기 권한 삭제
chmod u-r test // 해당 파일을 소유한 사람에게 읽기 권한 삭제
chmod a-rwx test // 모두에게 읽기/쓰기/실행 권한 삭제
chmod 777 test // 사용자, 그룹, 다른 사용자 에게 읽기/쓰기/실행 권한
chmod 764 test // 사용자: 읽기/쓰기/실행, 그룹: 읽기/쓰기, 다른 사용자: 읽기
gradle 빌드할 때 썼던 명령어
chmod +x ./gradlew
모든 사용자에게 실행 권한 부여
'왕초보일지' 카테고리의 다른 글
복습과제 (0) | 2024.02.02 |
---|---|
240201 TIL | ubuntu 환경에 docker 설치하고 실행하기 (0) | 2024.02.01 |
240130 TIL | Ec2/ubuntu/깃클론/swap메모리/배포 (3) | 2024.01.30 |
240129 TIL | (2) | 2024.01.29 |
240126 TIL | 배포를 시도해봤다 (1) | 2024.01.26 |