ip주소와 포트번호를 넣고 연결한다. A와 사용자 B를 연결하며 통신한다. 그러다가 B가 5001 port와 통신하게 되면 A는 다른 사용자인 C와 통신이 불가능하게 된다.
왜냐하면 CPU가 일을 하고 있기 때문이다. 그렇기 때문에 스레드
를 만든다. 5000번은 main 스레드로 5001은 스레드 1로 만든다.
그렇게 되면 C는 A와 연결이 가능하게 된다.
그 후에는 또 랜덤으로 소켓의 포트번호가 생성되고 나서 새로운 스레드
로 만들어지고 그리고 나서 5000번인 main 스레드와의 연결이 또 끊기게 된다. 왜냐하면 새로운 사용자의 요청을 받아야 하기 때문이다.
C와 5002이 연결된다. 통신한다. 이런 방식이 바로 소켓 통신
이다.
소켓의 장점은 연결이 끊어지지 않는다. 연결되고 나서 연결된 사람은 같은 사람으로 계속 인식하지만 이렇게 되면 단점은 부하가 많아지게 돼서 느려질 수 있다.
그래서 Http 통신 방식(문서를 전달하는 통신)은 계속 이어지는 소켓 통신 방식이 아닌 지속시키지 않고 연결을 끊어버리는 Stateless
방식을 사용한다.
문서를 요청 받으면 문서를 돌려주고 연결을 끊어버린다.
그렇기 때문에 장점은 부하가 적다. 그렇지만 단점으로는 항상 새로운 사람으로 인식한다.
이러한 단점들을 보완하면서 만들어진 것이 Web 서버다.
🔗 전에 자세히 정리 한 것 : https://velog.io/@prettylee620/CS-지식-서버관련
웹 서버는 클라이언트로부터 요청을 받으면 해당 요청에 대한 처리를 수행하고, 클라이언트에게 응답을 전송하는 역할을 한다. 이때, 각 클라이언트의 상태를 기억하지 않고, 각 요청에 대해 독립적으로 응답하는 특성을 갖는다. 이러한 특징은 "Stateless(상태 없음)"
한 특성을 가진다고 표현된다.
웹 서버는 HTTP 프로토콜
을 기반으로 동작하며, 클라이언트가 요청을 보내면 서버는 해당 요청에 대한 응답을 생성하여 반환한다. 서버는 각 요청에 대해 독립적으로 처리하므로, 클라이언트와의 연결을 지속적으로 유지하지 않는다. 이러한 특성은 간단하고 빠른 응답을 가능하게 하며, 많은 클라이언트에 대한 처리를 효율적으로 수행할 수 있다.
즉, 정리하자면
Yes
웹 서비스
는 웹 서버의 기능을 넘어서, 네트워크를 통해 서로 다른 시스템 간에 상호작용하기 위한 표준화된 방법을 제공하는 서비스를 의미한다. 웹 서비스는 주로 XML 또는 JSON 형식의 데이터를 교환하며, 서로 다른 플랫폼 간에 통신을 가능하게 하는 기술적인 규격을 포함한다. RESTful API나 SOAP 등이 웹 서비스의 예시
간단하게 말하면, 웹 서비스
는 네트워크 상에서 서로 다른 시스템 간에 표준화된 방법으로 통신하기 위한 규격을 나타내는 것이며, 웹 서버
는 클라이언트의 요청을 받아 정적인 콘텐츠를 제공하거나 동적인 처리를 위해 애플리케이션 서버로 요청을 전달하는 역할을 하는 소프트웨어 또는 하드웨어를 나타낸다.
예전에 수기 문서로 논문을 찾던 시절 자신의 논문을 업로드에서 다른 사람들이 논문 쓸 때 겹치지 않게 참고하라고 올린다. 그 올린 것을 받아오기만 하면 돼서 연결이 지속될 필요 x ⇒ HTTP