29Jul

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

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

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

Сцреенсхот цоуртеси оф кмодуло / Линук Сцреенсхотс( Флицкр).

Питање

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

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

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

Одговор на

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

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

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

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