전체 글(754)
-
[네트워크] HTTP 메시지에 대한 나름의 이해
HTTP 메시지는 크게 세가지로 구성된다. start-line header 공백 body start-line은 request와 response가 각각 다음으로 구성된다. request: (HTTP-method) SP(공백) request-target(absolute-path) SP (HTTP-version) CRLF GET /search?q=hello@hl=ko HTTP/1.1 response: (HTTP-version) SP status-code SP status-phrase CRLF(엔터) ex) HTTP/1.1 200 OK status-code에는 다음의 것들이 있다. 200: 성공 400: 클라이언트 요청 오류 500: 서버 내부 오류 header는 request와 response가 각각 다음으로..
2023.11.03 -
[네트워크] 비연결성에 대한 나름의 이해
비연결성은 요청과 응답을 하고 커넥션을 끊는 것이다. TCP를 사용한다는 전제이다. TCP를 사용하면 3-way handshake로 연결을 확립한다. 비연결성은 이때 한번의 요청과 응답을 하고 끊는다. 이유는 서버가 최소한의 자원만 유지하기 위해서이다. 만약 서버가 계속 연결을 유지한다고 생각해보자. 이때 하나의 서버에 만명의 유저가 동시에 접속한다면 만명의 연결을 유지해야 한다. 이러면 자원 낭비가 심해진다. 따라서 끊어주는 것이다. 하지만 요청을 하고 응답을 받고 나서 끊어준다면 여러번의 요청이 필요하다면 시간이 오래 걸린다는 단점이 생긴다. 또한 하나의 페이지를 요청한다고 해도 거기에는 자바스크립트, 이미지, css 등 수많은 자원이 다운로드된다. 하나의 자원을 받을 때마다 연결을 맺고 끊고 하면 ..
2023.11.03 -
[네트워크] 무상태에 대한 나름의 이해
무상태(Stateless), 상태유지(Stateful)의 차이는 다음과 같다. 상태유지는 서버가 상태를 유지한다고 가정하는 것이다. 그러면 클라이언트는 서버가 지금까지의 상태를 알고 있다는 전제하에 요청을 할 수 있다. 예를 들어, 소비자가 노트북이 얼마인지 물어본다. 그러면 점원은 100만원이라고 답한다. 그러면 소비자가 점원이 이를 안다는 가정하에 2개 주세요라고 하면 점원은 노트북 2개인지 알 수 있다. 하지만 그 사이에 점원이 바뀌게 된다면 어떻게 될까? 소비자가 2개 주세요라고 하면 점원은 무엇을 2개 달라는 것인지 알지 못한다. 무상태는 서버가 상태를 유지않는다고 가정하는 것이다. 그러면 클라이언트는 서버가 지금까지의 상태를 모른다는 전제하에 필요한 모든 정보를 포함해서 요청을 한다. 예를 들..
2023.11.02 -
[네트워크] 클라이언트 서버 구조에 대한 나름의 이해
HTTP는 클라이언트 서버 구조를 기본으로 한다. 클라이언트는 요청하고 서버는 응답한다. 이렇게 하면 클라이언트는 UI에 집중할 수 있다. 서버는 복잡한 로직과 데이터 처리에 집중할 수 있다. 서로가 독립적으로 고도화될 수 있다. Reference https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61360 학습 페이지 www.inflearn.com
2023.11.02 -
[네트워크] HTTP에 대한 나름의 이해
HTTP는 HyperText Transfer Protocol로 HTML 문서를 보내기 위한 규약이였지만 현재는 모든 파일을 보내는데 사용된다. 가장 많이 쓰이는 HTTP는 1.1버전으로 필요한 모든 것이 들어가 있다. HTTP2와 HTTP3는 성능 개선에 초점을 맞춘다. HTTP3는 UDP 기반으로 동작한다. 그 외는 TCP로 동작한다. HTTP는 다음과 같은 특징이 있다고 한다. 1. 클라이언트 서버 구조 2. 무상태 프로토콜(스테이스리스), 비연결성 3. HTTP 메시지 4. 단순함, 확장 가능 Reference https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&uni..
2023.11.02 -
[네트워크] 웹브라우저 요청 흐름에 대한 나름의 이해
TCP를 통해 3-way handshake를 한다. 웹브라우저가 url에 있는 정보를 바탕으로 ip, port, query(데이터) 등을 알아낸다. 그 후 tcp, ip를 데이터에 감싸 서버에 보낸다. 서버에서는 데이터를 받는다. 거기에는 데이터가 들어있다. 데이터를 받아 처리한 결과인 응답메세지(html 형태의 데이터 포함)를 tcp, ip로 감싸 보낸다. 웹브라우저가 렌더링해서 보여준다. Reference https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61358 학습 페이지 www.inflearn.com
2023.11.02