Почетна » како да » Како веб сервери слушају нове захтеве?

    Како веб сервери слушају нове захтеве?

    Када учите о веб серверима и како они раде, можете бити знатижељни ако непрестано слушају захтеве или чекају док не добију захтев за покретање акције. Имајући то у виду, данашња постова за питања и одговоре СуперУсер-а имају одговоре који задовољавају читаоцу.

    Данашња сесија питања и одговора долази нам захваљујући СуперУсер-у - подјела Стацк Екцханге-а, груписане од стране заједнице веб-локација за питања и одговоре.

    Сцреенсхот љубазношћу кмодуло / Линук Сцреенсхотс (Флицкр).

    Питање

    Читач СуперУсер усер2202911 жели да зна како веб сервери слушају нове захтеве:

    Покушавам да разумем детаље "дубљег нивоа" о томе како раде веб сервери. Желим да знам да ли сервер, рецимо, Апацхе, на пример, стално тражи нове захтеве или ако ради на неки систем прекида. Ако је то прекид, шта изазива прекид? Да ли је то управљачки програм мрежне картице?

    Како веб сервер слуша нове захтеве?

    Одговор

    Сарадник СуперУсер-а Грег Бовсер има одговор за нас:

    Кратак одговор је нека врста система прекида. У суштини, користе блокирање И / О, што значи да спавају (блокирају) док чекају нове податке.

    1. Сервер креира сокет за слушање, а затим блокира док чека нове везе. За то време, кернел ставља процес у прекидиви сан навести и покренути друге процесе. Ово је важна ствар; Процесна анкета континуирано би трошила ЦПУ ресурсе. Кернел је у стању да ефикасније користи системске ресурсе блокирајући процес док не дође до посла.
    2. Када нови подаци стигну на мрежу, мрежна картица издаје прекид.
    3. Видјевши да постоји прекид са мрежне картице, кернел, преко управљачког програма мрежне картице, чита нове податке са мрежне картице и похрањује их у меморију. (Ово се мора урадити брзо и обично се рукује унутар руковатеља прекида.)
    4. Језгро обрађује новонастале податке и повезује их са сокетом. Процес који блокира тај сокет ће бити означен као изводљив, што значи да сада може да се покрене. Не мора се одмах покренути одмах (кернел може одлучити да покрене друге процесе).
    5. У слободно вријеме, кернел ће пробудити процес блокираног веб сервера. (Будући да се сада може извршити.)
    6. Процес веб сервера се наставља као да нема времена. Његов позив за блокирање система се враћа и обрађује све нове податке. Затим идите на корак 1.

    Имате ли нешто да додате објашњењу? Звучи у коментарима. Желите ли прочитати више одговора од других технолошки паметних Стацк Екцханге корисника? Погледајте цео дискусију овде.