200407 // 웹서버, OSI 7계층, L4장비, 서킷 패킷 스위칭, 사설아이피, 공공데이터
웹서버 : 정보를 가지고 있는 컴퓨터의 특정 폴더
A가 서버고 B가 요청자면
A는 가만히 있고
B가 파일을 가져간다(A가 주는 것이 아님)
B - request
A- response
(파일이 아니라 서버 상태, 요청의 가능 불가능 여부)
정상적 request - 정상적 response 가 되는 것을 세션이 연결 되었다고 함 (인증이 된 것)
세션이 연결되어야 자료를 주고 받을 수 있다
정상적이지 않으면 세션이 아님
아이피로 접속 해당 컴퓨터에 접근이 되고 (웹서버)응용프로그램을 선택하는 것은 포트
포트는 논리적 개수는 2바이트(65536개)
포트간의 통신 - 소켓 통신 (소켓(포트)을 양쪽 끝에 달고 통신한다)
웹서버를 찾을때 필요한 것 : 아이피주소 + 포트
http프로토콜 :
1. 문서(.html)를 교환하겠다는 프로토콜
2. stateless (연결이 끊인다) - 부하를 줄이기 위해
소켓통신은 OS가 제공해준다 (쉘 명령어 - cmd 등의 명령어)
- stateful(연결이 끊이지 않는다) - 부하가 크다
OSI 7계층 : request, response 의 과정
https://blog.naver.com/ithopenanum/221502748148
컴퓨터 네트워크 상식! : OSI7계층 알아보기
안녕하십니까, 나셀프 입니다.인터넷이 너무도 당연하게 사용되는 우리의 삶에서한번쯤, 우리가 사용하는 ...
blog.naver.com
응용->물리 - 직렬화 - 시리얼라이제이션
물리->응용 - 역직렬화 - 역시리얼라이제이션
아래의 직렬화 과정은 헤더를 만들어 가는 과정
7.응용 - 프로그램 (크롬 브라우저 등) - 정보 입력 및 출력
6.표현 - 압축 및 인코딩
5.세션 - 동기화(세션 연결 여부 결정)
4.트랜스포트(전송) - 전송 방식을 설정
- TCP-컴퓨터가 이해해야 하는 데이터라 완벽해야함 - 응답(ACK)을 받아야되서 느리다
- UDP-데이터를 손대지않고 통과(전화 등 유실이 되도 큰문제가 없는 데이터)) - 빠르다
3.네트워크 - IP를 통해 논리적인 길을 만든다 - 통신 경로 여러 곳을 테스트해보고 빠른 길을 찾는다
(7~3)은 WAN영역(Wide Area Network)
2.데이터링크 - 인터넷에서 온 데이터가 집에 도착했을 때 어떤기기인지 찾는 것
- 공유기가 없이 다이렉트로 랜선연결하면 필요없으나
- 허브나 공유기가 있다면 기기마다 분배
1.물리 - 01010101010로 바뀐 데이터를 구리나 광케이블 등을 통해 흘러 나가는 것
(2~1)은 LAN영역(Local Area Network)
L4장비
- 웹서버에서 접속자를 받을때
- 1~3계층을 모두 클리어하고 4계층을 가기전에 기계로 분배
- 로드밸런싱 - 서버에 접속자가 많을경우 복제된 다른서버로 접속자를 보내기
- 서버를 복제해서 다른 컴퓨터를 쓰려면 비용이 많이 드니 클라우드를 이용한다
IAAS, PAAS, SAAS
-----------------------------------
well-known-port = 0~1023번
-----------------------------------
서킷 스위칭 - 데이터를 쪼개서 보낼 필요가 없다. / 선이 무한정 늘어난다
패킷 스위칭 - 데이터를 쪼개서 보낸다(패킷) / 쪼갠 데이터를 동시에 보낼 수 있다 / 헤더
-------------------------------------
헤더분석 - 파싱
-----------------------------------
사설아이피
10
192
172
------------------------------------------
MalformedURLException -> http://인데 htt 등 완성되지 않은 URL로 인한 에러
---------------------------------------------
크롬
주소를 쳐서 네이버서버에서 html파일을 받아오고
관련된 css / js파일도 받고
연결시킨뒤 실행
-----------------------------------------
공공데이터
api end point - > http://openapi.tago.go.kr/openapi/service/
end point + 상세주소
(부산시 진구 중앙대로 708 = 엔드포인트)
(4층 000호 = 상세주소)
?뒤의 모든 것들을 쿼리스트링이라고한다
조건을 붙이고 여러 조건을 붙이려면 &를 이용한다
주소마지막에 &_type=json
package ch15;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class NetworkEx02 {
public static void main(String[] args) {
try {
// 1번 주소 객체 만들기
URL url = new URL("api주소");
// 2번 스트림 연결
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 3번 버퍼연결(문자열)
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
// 4번 StringBuilder는 ArrayList<String>과 비슷하다
// append로 String을 저장한뒤 호출하면 쭉 읽는다
StringBuilder sb = new StringBuilder();
String input = "";
while ((input = br.readLine()) != null) {
sb.append(input);
}
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
}
}
}
------------------------------------------