보통 서버를 구성한 후 api 통신을 이용할 때 localhost:포트 형식으로 테스트를 진행하곤 한다.
ex) swagger, web
통신하는 방법 및 차이가 궁금해서 정리를 해 보았다.
정의
우리가 보통 서버와 서버 간 통신을 진행하게 되면 IP to IP 로 하게 되는데 (DNS 구성하지 않은 경우) 왜 localhost라는 네임으로 통신이 되는건가?
윈도우 환경을 예시로 들면 C:\Windows\System32\drivers\etc 위치에 있는 hosts 파일에 있다.
(리눅스에선 /etc/hosts)
OS를 많이 다뤄본 사람은 알겠지만 localhost 로 접근 시 127.0.0.1 로 접근 하도록 도와주는 동작을 한다.
왜? 127.0.0.1 로 기억하는 것보다 localhost 로 기억하는 게 기억하기 쉽고 브라우저에 입력 시에도 빠르기 때문에
또한 localhost 또는 127.0.0.1 로 접근하는 것을 루프백이라고 한다.
이러한 루프백은 컴퓨터 내부에 하드웨어 형태가 아닌 소프트웨어 형태로 동작하고 컴퓨터 자신과 통신할 수 있도록 사용되는 컴퓨터의 가상 네트워크 인터페이스이다.
무조건 적으로 localhost가 127.0.0.1로 치환되는 것은 아니고 해당 설정을 127.0.0.1에서 다른 IP로 변경 해주면 다른 IP로 통신된다.
내 생각
결과적으로 localhost 나 127.0.0.1 이나 통신하는 것은 동일하게 내 PC내에 있는 애플리케이션 (ex // swagger, web) 등에 접근하기 위한 통신.
localhost는 127.0.0.1 이 기본적으로는 맞으나 무조건 적인 것은 아님. 소프트웨어 적으로 가상의 네트워크 인터페이스를 만들어 내부적으로 통신하게끔 만들어줌.
/etc/hosts 파일을 통해 이 또한 변경 가능
[참조] :
https://velog.io/@lky9303/127.0.0.1-%EA%B3%BC-localhost%EC%9D%98-%EC%B0%A8%EC%9D%B4
'Network' 카테고리의 다른 글
Domain 에러 확인 및 대응 (0) | 2024.05.31 |
---|---|
Nginx에서 Upstream의 의미 (0) | 2024.05.22 |
Web Socket 통신이란? (0) | 2023.09.22 |
NAT와 NAPT란? (0) | 2023.07.06 |
HTTP 상태 코드란? (0) | 2023.01.02 |