Насправді я навчаюсь комп'ютерних мереж, і, перебуваючи в ньому, я розгублений у тому, як веб-сервер підтримує безліч з'єднань?
Просто кажучи, я дізнався через деякий googling те, що розетки обробляють кожен запит клієнта.
Отже, скажімо, що існує веб-сервер, і давайте скажемо, що 2 клієнта з IP-адресами
Client A: 5.5.5.5
Client B: 10.10.10.10
Вони обидва намагаються підключитися до сервера через порт 80.
Тепер, з googling, що я отримав, сервер слухає порт 80 для вхідних запитів. Потім скажемо, що клієнт A намагається підключитися до сервера (встановити TCP / IP-з'єднання). Під час якого між цими двома створюється розетка. Потім він виконується як окремий потік для його подальшого зв'язку, змушуючи сервер знову слухати інші запити клієнтів у цьому конкретному порту. І Клієнт Б підключається таким же чином.
Тепер моє перше питання:
1. How does server communicate with these two clients simultaneously
after the connection has been established?
Зараз практично не лише 2 клієнти, але тисячі і мільйони користувачів можуть підключитися до сервера.
Тоді наступне моє запитання:
2. Now, how do those thousands of clients get connected to a single server?
If we assume every client is connected to the server through wire, it is not
practically possible to maintain that many sockets on a hardware for
connection. How those thousands connections are made and handled?
І нарешті, моє третє питання:
3. Above I said (actually heard) how **client A** connected to the the server
and similarly the client B.
But I didn't get the part stating "after a TCP/IP connection is made they
continue separately in a separate socket and making server to listen for
other client requests." What does that mean? If one client is communicating
to the server, how come other can communicate at the same time to same server.
Isn't it like while a student is asking question to a teacher, other can't
ask at the same time since that particular student is busy or occupying the
teacher at the moment so others should wait, which we compare than client B
should wait when client A is communicating.
Це мої основні питання, які я не отримую. Будь ласка, виправте мене, якщо я все зрозумію неправильно. Ви можете запропонувати мені прочитати кілька книжок / pdfs, якщо відповіді деталізовані чи не окремо орієнтовані на конкретну частину. Спасибі