목록Spring/(김영한님)HTTP웹 기본 지식 (16)
개발일기
- Request Response 구조 - 클라이언트는 서버에 요청을 보내고, 응답을 대기 - 서버가 요청에 대한 결과를 만들어서 응답 HTTP는 클라이언트가 HTTP 요청 메시지를 통해서 서버에 요청을 보낸다. 그러고 클라이언트는 서버에서 응답이 올때까지 기다린다. 서버가 요청에 대한 결과를 만들어서 응답이 오면 응답 결과를 열어서 클라이언트가 동작을 하게 된다. 대게 단순한 구조이다. 사실 이건 대게 표면적인 구조이다. 이런식으로 분리하는 것이 굉장히 중요하다. 왜 중요하냐 일단, 클라이언트와 서버를 분리를 한다. 예전에는 클라이언트와 서버의 구조가 분리되어 있지 않았다. 한 뭉텅이였음. 그런데 클라이언트와 서버를 개념적으로 분리를 해내게된다. 비즈니스 로직이랑 데이터같은 것들은 다 서버에 집중한다...
HTTP (HyperText Transfer Protocol) HyperText 문서간의 링크를 연결할 수 있는 HTML전송하는 프로토콜로 시작했는데, 모든 것을 HTTP 메시지에 담아서 전송한다. - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML(API) - 거의 모든 형태의 데이터 전송 가능 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 - 지금은 HTTP 시대이다. TCP를 직접 연결해서 하는 경우는 게임 서버, 특별한 경우 심지어 요즘은 모바일 서버는 HTTP로 하는 경우도 많다. HTTP 역사 - HTTP/0.9 1991년 : GET메서드만 지원, HTTP 헤더 X - HTTP/1.0 1996년 : 메서드, 헤더추가 - HTTP/1.1 1997년 : 가..
https://www.google.com:443/search?q=hello&hi=ko DNS조회 => IP: 200.200.200 2 HTTPS PORT 생량, 443 HTTP요청 메시지 생성 HTTP 요청 메시지 => 요렇게 생겼음 GET /search?q=hello&hi=ko HTTP/1.1 Host: www.google.com Google www.google.com HTTP 메시지 전송 1. 애플리케이션에서 웹브라우저가 HTTP 메시지 생성한다. 2. SOCKET 라이브러리를 통해 전달 OS에다가 TCP/IP를 SOCKET을 통해서 보내야함. 찾은 TCP,IP를 SOCKET라이브러리를 통해 전달 sync , sync ack 그래가지고 이 데이터를 전달 내 데이터에다가 패킷을 씌워서 보내는데 이때, ..
URI와 웹 브라우저 요청 흐름 - URI - 웹 브라우저 요청 흐름 URI , URL , URN URI - URI(Resource identifier)는 로케이터(locator), 이름(name)또는 둘다 추가로 분류될 수 있다. URL(Resource Locator) => 리소스의 위치 URN(Resource Name) => 리소스의 이름 URL(Resource Locator) foo://example.com:8042/over/there?name=ferret#nose (우리가 웹브라우저에서 적는 것) foo => scheme example.com:8042 => authority /over/there? => path name=ferret => query #nose => fragment URN(Resou..
IP는 기억하기 어렵다. IP는 변경될 수 있다. IP를 바꾸면 다시 연락해야함. DNS 도메인 네임 시스템(Domain Name System) - 전화번호부 - 도메인 명을 IP 주소로 변환 DNS서버에 도메인을 등록할 수 있다. DNS서버를 먼저 IP를 넣어준다. (도메인 네임을 입력하고 도메인으로 먼저 찾음) 나중에 아이피가 바뀌면 어떻게하는가 그러면 google같은데서 아이피주소를 바꾸고 다른 아이피주소로 바꾼다. 인터넷 네트워크 정리 - 인터넷통신 - IP(Internet Protocol) - TCP, UDP - PORT - DNS
PORT는 영어 뜻이 항구라는 뜻이다. 한번에 둘 이상 연결해야 하면? 클라이언트가 즉,우리가 게임도 하면서 화상통화도 하고, 웹 브라우저로 요청을 하고 있다. 친구랑 게임하면서 화상통화도함. 한번에 클라이언트 PC가 여러개의 서버랑 통신해야한다. 서버에서 패킷들이 내 IP로 날라올 텐데 게임에서 날라오는 패킷인지, 웹브라우저에서 날라오는 패킷인지 화상통화에서 날라오는 패킷인지는 알수가 없다. 반대로도 마찬가지이다. TCP/IP 패킷에 UDP도 마찬가지고 출발지 포트와 목적지 포트라는게 있다. 그러니까 IP를 더해서 PORT라는 개념이 있다. IP는 목적지 서버를 찾는 것 서버내에서 돌아가는 애플리케이션을 구분하는게 포트이다. TCP/IP를 합쳐서 TCP/IP패킷이라고 하고 여기안에는 출발지 IP,POR..
복잡한 인터넷망에서 helloworld를 미국에 있는 사람에게 보낸다 하자. 최소한의 규칙이 있어야한다. 이게바로 IP주소이다. 클라이언트에 IP 100.100.100.1 서버에 IP주소도 200.200.200.2 IP인터넷 프로토콜 역할 - 지정한 IP주소(IP Address)에 데이터 전달 - 패킷(Packet)이라는 통신 단위로 데이터 전달 IP패킷정보 => ip패킷 규칙 출발지 IP, 목적지 IP, 기타... (나의 IP , 미국에 있는 친구IP) 전송 데이터 (Hello World) 친구도 message를 받고 아이피패킷을 받아서 던져준다. OK라는 신호를 보내줌 받은 확인으로 요청할때랑, 응답할 때 서로 다른 곳으로 갈 수 있음. IP 프로토콜의 한계 - 비연결성 : 패킷을 받을 대상이 없거나..