36.통신

Jan 11, 2024
36.통신
💡
통신을 보낼때는 무조건 바이트 스트림으로 보낸다. 패킷의 크기는 1460바이트다 헤더는 20바이트다. 전세계 사람들이랑 통신을 하려면 확장자에서 전세계적 표준이 필요하다. 표준을 프로토콜이라고 한다.
statefull:서로가 연결되어 기억하고 수화기를 내려 놓치지 않는 상태
stateless: 반이중, 메세지 전송되고 끝 연결 종료(소켓 직접 끊어야됨)
통신에서는 프로토콜 컴퓨터를 사용 할 때는 확장자
확장자:바이트화 돼있던 데이터들을 원래 의미 있는 데이터로 복구 하기 위해서 얼만큼 데이터를 app단계에 소비 할지 정해주는 역할을 하는 친구다.
 
 

브라우저

💡
팀 버너스리 란 사람이 논문 툴을 만드는데 이것이 브라우저다.(Read) 마크업 랭귀지: 어떤 글자를 마킹해서 표시 하는거다. ex) <h1> 안녕</h1> h1= 헤딩업이라는 뜻 html :브라우저다. 하이퍼 텍스트가 있는 마크업 랭귀지다. 브라우저는 화면이 하나만 보이는데 다음장을 보기 위해 스크롤을 만든다. 용어에 다 갑주가 있어야 한다. 하이퍼 텍스트: 문서나 정보의 일부가 다른 문서나 정부와 링크로 연결 되어있는 텍스트를 의미 갑주를 붙이고 싶으면 앞뒤에 a를 붙인다 <a> 롤챔스</a>
마크업
notion image
 

http 동작 구조

💡
웹서버는 요청이 들어 올 때 마다 스레드가 하나씩 필요하다.
모든 스레드는 스레드 풀이 필요하다.
스레드풀 범위 밖에 스레드는 wait가 걸린다.
웹 서버의 포트는 80으로 통일 돼있다.
통신을 요청할때 url(프로토콜,ip주소,포트,자원명)로 요청을한다.
url(http://IP주소:80//k.html)
컴퓨터는 프로토콜 없이 통신을 하지못한다.
전달 받은 바이트화 돼있는 데이터들을 .html이라는 프로토콜을 통해서 화면에 원초적으로 표현 하려했던 데이터로 표현이 된다.
 
http파일을 필요로 하는 사람을 클라이언트라고 하고
들고 있는사람을 서버라고 한다.
 
클라이언트가 URL을 보내면 서버가 파싱을해서 hd에 저장된 파일을 통해 필요한 정보를 클라이언트에게 준다.
http 동작구조
notion image
 

URL

💡
URL은 인터넷상의 파일이나 데이터베이스 같은 자원에 대한 주소를 지정하는 방법이다. 자원이라는 것은 대개 파일을 의미하고 이 경우 인터넷은 거대한 하나의 파일 시스템이라고 할 수있다. URL은 바로 우리가 인터넷에서 웹 페이지를 볼 때 웹 브라우저의 주소 칸에 적어주는 값으로 Url은 호스트 이름에 파일의 경로를 붙여서 표시한다 URL(http://IP주소:80//k.html) URL은 두 부분으로 되어있는데 첫 번째 부분은 자원에 접근할 때 사용하는 프로토콜을 두 번째로는 자원의 이름을 나타낸다. 예시로 http는 하이퍼텍스트 전송 프로토콜을 나타내고 ftp는 파일 전송 프로토콜을 나타냄 URI =식별자
URL
notion image
notion image
notion image
호스트 이름 → ip 주소
package ex17; import java.net.InetAddress; import java.net.UnknownHostException; //호스트 이름 -> ip주소 public class Host2ip { public static void main(String[] args) { String hostname = "www.naver.com"; try { //InetAddress 인터넷 주소 클래스의 getByName()을 호출하면 호스트 이름을 전달해서 IP 주소를 저장하고 있는 객체가 반환 InetAddress address = InetAddress.getByName(hostname); System.out.println("IP 주소: " + address.getHostAddress()); } catch (UnknownHostException e) { System.out.println(hostname + "ip의 주소를 찾을 수 없습니다."); } } }
 
 

Dns

💡
DNS는 보통 인간에게 친근한 문자열을 사용하여서 이름을 짖는데 예시로 www.naver.com과 같다. 그러나 컴퓨터 끼리에 통신이기 때문에 IP주소를 사용해야되는데. 이때 DNS를 IP주소로 변환 해주는 작업을 하는게 DNS서버이다.
 
 
💡
get요청이 끝나면 stateless 통신을 끊는다. http에서 내용을 줘야 되는 것을 body데이터라고 한다. 클라이언트가 내용을 보내면 서버가 석여있는 데이터들을 의미있게 파싱을 한다. url에 필요한 자원명을 보고 mime=마임타입 =확장자 웹에서는 확장자가 의미가 없다
 
 
 
💡
html은 일반 웹 서버를 찾아주는 아이 url에 확장자 없는것은 식별자(uri)
 
 
 
Share article
RSSPowered by inblog