「Webサーバ」の版間の差分
Dinamik-bot (会話 | 投稿記録) m ロボットによる 変更: ar:خادوم وب |
編集の要約なし |
||
(39人の利用者による、間の47版が非表示) | |||
1行目: | 1行目: | ||
{{出典の明記|date=2021年6月}} |
|||
'''Webサーバ'''(ウェブサーバ)は、[[Hypertext Transfer Protocol|HTTP]]に則り、[[クライアント]]ソフトウェアの[[ウェブブラウザ]]に対して、[[HyperText Markup Language|HTML]]やオブジェクト([[画像]]など)の表示を提供するサービスプログラム及び、そのサービスが動作する[[サーバ]][[コンピュータ]]を指す。<!-- (狭義な意味で言えば、サーバソフトウェアを指す) --> |
|||
'''Webサーバ'''(ウェブサーバ、英:{{En|Web server}})は、[[Hypertext Transfer Protocol|HTTP]]に則り、[[クライアント (コンピュータ)|クライアント]][[ソフトウェア]]の[[ウェブブラウザ]]に対して、[[HyperText Markup Language|HTML]]やオブジェクト([[画像]]など)の表示を提供するサービスプログラム及び、そのサービスが動作する[[サーバ]][[コンピュータ]]を指す。<!-- (狭義な意味で言えば、サーバソフトウェアを指す) --> |
|||
広義には、クライアントソフトウェアとHTTPによる通信を行うプログラム及びコンピュータ。 |
|||
== 実装 == |
== 実装 == |
||
クライアントである[[ウェブブラウザ]]の[[Uniform Resource Locator|URL]]にて指示された、Webサーバ内に存在するHTMLドキュメントの各種情報を、クライアントから接続されたHTTPに則った[[TCP/IP]][[ソケット (BSD)|ソケット]]ストリーム(HTTPコネクションと呼ぶ)に送信する。多くの場合、クライアントのウェブブラウザとの間に複数の[[コネクション]]を張り、HTMLドキュメントとその配下の個々の情報ファイル(画像ファイル情報など)を並列して送り、処理時間を短縮してサービスを提供している。 |
クライアントである[[ウェブブラウザ]]の[[Uniform Resource Locator|URL]]にて指示された、Webサーバ内に存在するHTMLドキュメントの各種情報を、クライアントから接続されたHTTPに則った[[インターネット・プロトコル・スイート|TCP/IP]][[ソケット (BSD)|ソケット]]ストリーム(HTTPコネクションと呼ぶ)に送信する。多くの場合、クライアントのウェブブラウザとの間に複数の[[コネクション]]を張り、HTMLドキュメントとその配下の個々の情報ファイル(画像ファイル情報など)を並列して送り、処理時間を短縮してサービスを提供している。 |
||
また、HTMLドキュメントに各種処理を組み込み、[[Common Gateway Interface|CGI]][[スクリプト]]や[[Java Servlet]](サーバ側で実行される[[Java]]プログラム)と呼ばれるWeb画面に連動した動的処理を行う事が可能である。CGI処理においては[[Perl]]・[[Ruby]]・[[PHP |
また、HTMLドキュメントに各種処理を組み込み、[[Common Gateway Interface|CGI]][[スクリプト]]や[[Java Servlet]](サーバ側で実行される[[Java]]プログラム)と呼ばれるWeb画面に連動した動的処理を行う事が可能である。CGI処理においては[[Perl]]・[[Ruby_(代表的なトピック)|Ruby]]・[[PHP (プログラミング言語)|PHP]]などの[[スクリプト言語]]によって開発されることが多い。 |
||
Java Servletにおいては、Javaによる動的処理の負荷を分散するため、Java Servletを処理する機能を別サーバに切り出し、Webアプリケーションサーバとして、垂直分散(スケールアウト)する事も一般化している。 |
Java Servletにおいては、Javaによる動的処理の負荷を分散するため、Java Servletを処理する機能を別サーバに切り出し、Webアプリケーションサーバとして、垂直分散(スケールアウト)する事も一般化している。 |
||
15行目: | 17行目: | ||
== 歴史 == |
== 歴史 == |
||
[[File:Cobalt Qube 3 Front.jpg|thumb|[[サン・マイクロシステムズ]]のSOHO向けWebサーバ<br />Sun Cobalt Qube 3(2002年)]] |
|||
*1989年 |
|||
*[[1989年]] |
|||
**[[欧州原子核研究機構]](CERN)に在籍していた[[ティム・バーナーズ=リー]]が「Information Management: A Proposal(情報管理:提案)」を執筆。彼が以前から持っていたWebシステムの素案を目に見える形で提案した。 |
|||
**[[欧州原子核研究機構]] (CERN) に在籍していた[[ティム・バーナーズ=リー]]が「Information Management: A Proposal(情報管理:提案)」を執筆。彼が以前から持っていたWebシステムの素案を目に見える形で提案した。 |
|||
*1990年11月 |
|||
**World Wide Web をより具体化した提案書を発表。1990年11月13日から開発が開始。 |
*[[1990年]][[11月]] |
||
**World Wide Web をより具体化した提案書を発表。1990年[[11月13日]]から開発が開始。 |
|||
*1990年12月 |
*[[1990年]][[12月]]〜[[1991年]][[1月]] |
||
**現Webサーバ群の基になるHTTPサーバ『[[CERN |
**現Webサーバ群の基になるHTTPサーバ『[[CERN httpd]]』と各種ツールをクリスマス休暇中に作成し、最初のWebページ展開([[Berkeley Software Distribution|BSD]]系[[オペレーティングシステム|OS]]である[[NEXTSTEP]]/[[NeXT]]ワークステーションに実装)。 |
||
*1991年8月 |
*1991年[[8月]] |
||
**Webサーバとラインベースのウェブブラウザによるプロジェクト成果の要約をニュースグループに投稿。これがWWWとWebサーバのデビューとなった。 |
**Webサーバとラインベースのウェブブラウザによるプロジェクト成果の要約を[[ニュースグループ]]に投稿。これがWWWとWebサーバのデビューとなった。 |
||
*1992年とそれ以降 |
*[[1992年]]とそれ以降 |
||
**[[イリノイ大学]]の[[米国立スーパーコンピュータ応用研究所]](NCSA)の[[ロバート・マックール]]らが、CERN |
**[[イリノイ大学]]の[[米国立スーパーコンピュータ応用研究所]](NCSA)の[[ロバート・マックール]]らが、CERN httpdに続く2番目の実装となる『[[NCSA HTTPd]]』を開発、また同じくNCSAの学生であった[[マーク・アンドリーセン]]らが、画像も表示できるウェブブラウザ[[NCSA Mosaic]]を開発し、一般に急速に広まった。 |
||
**この時点では、Webサーバの主役は『CERN |
**この時点では、Webサーバの主役は『CERN httpd』や『NCSA HTTPd』であった。しかし、改修が進まないという不満が募り、NCSA HTTPdに修正を加えるためのパッチ (patch) を集積するプロジェクトが始まった。その際、プロジェクトに Apache Group という名前を付け、開始したため、そのNCSA HTTPdのメンテを主(当初)とした派生版である[[Apache HTTP Server]]の誕生につながり、主役を移すことになった。 |
||
2015年時点においては、Apache及びその派生版である各ベンダのHTTP Serverが市場の4割、[[マイクロソフト]]の[[Internet Information Services|IIS]]が市場の3割、[[nginx]]が2割弱を占める<ref>[http://news.netcraft.com/archives/2015/11/16/november-2015-web-server-survey.html November 2015 Web Server Survey] netcraft</ref>。2024年時点では、nginxが40%、Apacheが25%、Microsoftが10%弱となっている<ref>[https://www.netcraft.com/blog/february-2024-web-server-survey/ February 2024 Web Server Survey] netcraft</ref>。 |
|||
元々、Webサーバは[[UNIX]]上で開発され発展してきた経緯もあり、当初から[[オープン系]]サーバと言われるUNIXサーバや[[Windows]]系サーバにより実装・提供されるのが普通である。ただし、システム構成上の都合により、[[Hypertext Transfer Protocol|HTTP]]や[[File Transfer Protocol|FTP]]、[[TCP/IP]]が利用可能な[[メインフレーム|汎用コンピュータ]]にて動作させる場合もある。 |
元々、Webサーバは[[UNIX]]上で開発され発展してきた経緯もあり、当初から[[オープンシステム (コンピュータ)|オープン系]]サーバと言われるUNIXサーバや[[Microsoft Windows|Windows]]系サーバにより実装・提供されるのが普通である。ただし、システム構成上の都合により、[[Hypertext Transfer Protocol|HTTP]]や[[File Transfer Protocol|FTP]]、[[インターネット・プロトコル・スイート|TCP/IP]]が利用可能な[[メインフレーム|汎用コンピュータ]]にて動作させる場合もある。 |
||
==現在の代表的な実装== |
==現在の代表的な実装== |
||
[[File:LAMP software bundle.svg|thumb|300px|The [[LAMP (ソフトウェアバンドル)|LAMP]] software bundle (here additionally with [[Squid (ソフトウェア)|Squid]]). A high performance and high-availability solution for a hostile environment]] |
|||
* [[Apache HTTP Server]] |
* [[Apache HTTP Server]] |
||
*Apacheの派生製品(ベンダ独自での改修版) |
|||
** [[IBM HTTP Server|IHS]]([[IBM]]:[[AIX]]/Windows) |
|||
** [[Zeus]]([[ヒューレット・パッカード|HP]]:[[HP-UX]]/Windows) |
|||
** [[Oracle HTTP Server]]([[オラクル (企業)|Oracle]]:各種商用[[UNIX]]/Windows) |
|||
** [[Sun Java System Web Server]]([[SunONE Web Server]])([[Netscape Enterprize Server]])([[サン・マイクロシステムズ|Sun]]/iPlanet Web Server:[[Solaris]]/Windows) |
|||
* [[CERN HTTPd]] |
|||
* [[NCSA HTTPd]] |
|||
* [[Internet Information Services]] |
* [[Internet Information Services]] |
||
* [http://www.soft3304.net/04WebServer/ 04webserver] |
|||
* [[AN HTTPD]] |
|||
* [[04webserver]] |
|||
* [[lighttpd]] |
* [[lighttpd]] |
||
* [[Cherokee (web server)]] |
|||
* [http://www.hiawatha-webserver.org/ Hiawatha Webserver] [[:en:Hiawatha_webserver|(英語版)]] |
|||
* [[thttpd]] |
* [[thttpd]] |
||
* [[RaidenHTTPD]] |
* [[RaidenHTTPD]] |
||
* [[nginx]] |
* [[nginx]] |
||
* [[Zope]] |
|||
他 |
他 |
||
== 歴史上の実装 == |
|||
* [[CERN httpd]] |
|||
* [[NCSA HTTPd]] |
|||
* [[AN HTTPD]] |
|||
* Tux Web Server |
|||
=== Tux Web Server === |
|||
Tux Web Server([[:en:TUX web server|英語版]])はかつて存在した HTTP サーバの実装であり、[[Linuxカーネル]]へのパッチとして書かれていた。静的なコンテンツのみを提供することと、カーネル層で動作することから、一般的なウェブサーバより高速と言われていた<ref> |
|||
{{Cite Web |
|||
|title=オープンソースの高速Webサーバー「TUX」の実力 |
|||
|url=https://xtech.nikkei.com/it/article/COLUMN/20051115/224580/ |
|||
|date=2005-11-16 |
|||
|accessdate=2024-3-9 |
|||
}}</ref>。開発者は Red Hat のカーネルハッカー Ingo Molnár で、当初のバージョンは [[Red Hat Linux]] 6.2 および 7.0 向けにリリースされた<ref> |
|||
{{Cite Web |
|||
|title=Red Hat TUX Web Server |
|||
|url=https://web.archive.org/web/20010129133400/http://www.redhat.com/products/software/ecommerce/tux/ |
|||
|accessdate=2024-3-9 |
|||
}}</ref>。カーネル内で動作し、ストレージとネットワークの双方に対して{{仮リンク|ゼロコピー|en|zero-copy}}の入出力を行うことができた<ref> |
|||
{{Cite Web |
|||
|title=TUX 2.0 Reference Manual |
|||
|url=https://www.stllinux.org/meeting_notes/2001/0719/tux/index.html |
|||
|accessdate=2024-3-9 |
|||
}}</ref><ref> |
|||
{{Cite Web |
|||
|title=ASCII.jp: Red Hat、Linuxカーネル内で動作する高速Webサーバをリリース |
|||
|url=https://ascii.jp/elem/000/000/301/301134/ |
|||
|date=2000-9-4 |
|||
|accessdate=2024-3-9 |
|||
}}</ref>。2009年頃にはその役目を終え、もはや保守されなくなっていた<ref> |
|||
{{Cite Web |
|||
|title=TUX installation |
|||
|url=https://listman.redhat.com/archives/tux-list/2009-September/msg00001.html |
|||
|date=2009-9-18 |
|||
|accessdate=2024-3-9 |
|||
}}</ref>。別名 Content Accelerator とも呼ばれていた<ref> |
|||
{{Cite Web |
|||
|title=Red Hat Content Accelerator 2.2: Reference Manual |
|||
|url=https://cs.uwaterloo.ca/~brecht/servers/readings-new/rh-content-accelerator-2.2.pdf |
|||
|accessdate=2024-3-9 |
|||
}}</ref>。 |
|||
== 個別の製品の特徴 == |
== 個別の製品の特徴 == |
||
* Oracle HTTP Server |
* Oracle HTTP Server([[:en:Oracle HTTP Server|英語版]]) |
||
** [[ |
** [[関係データベース管理システム|RDBMS]]ベンダである[[オラクル (企業)|オラクル]]が提供するWebサーバ (Oracle HTTP Server) においては、[[Jakarta EE|Java EE]]を使用した[[アプリケーションサーバ|Webアプリケーションサーバ]]と連携して、HTMLドキュメント内にデータベースに検索を行わせるための[[SQL]]文を直接記述し、データベースからデータをHTMLベースで呼び出して加工する事が可能となっている。 |
||
==脚注== |
|||
{{脚注ヘルプ}} |
|||
=== 出典 === |
|||
{{Reflist}} |
|||
== 関連項目 == |
== 関連項目 == |
||
* [[インターネット]] |
* [[インターネット]] |
||
* [[ウェブページ]] |
|||
* [[ホームページ]] |
|||
* [[ウェブブラウザ]] |
* [[ウェブブラウザ]] |
||
* [[アプリケーションサーバ]] |
* [[アプリケーションサーバ]] |
||
* [[コンテンツ |
* [[コンテンツ管理システム]] (CMS) |
||
* [[ホスティングサーバ]] |
* [[ホスティングサーバ]] |
||
* [[FTPサーバ]] |
* [[FTPサーバ]] |
||
64行目: | 108行目: | ||
* [[サーバ]] |
* [[サーバ]] |
||
* [[バーチャルホスト]] |
* [[バーチャルホスト]] |
||
* [[Server Side Includes]](SSI) |
* [[Server Side Includes]] (SSI) |
||
* [[帯域幅調整]] - [[トラフィックシェーピング]] |
* [[帯域幅調整]] - [[トラフィックシェーピング]] |
||
* [[サーバログ]] |
* [[サーバログ]] |
||
{{Normdaten}} |
|||
{{DEFAULTSORT:うえふさあは}} |
{{DEFAULTSORT:うえふさあは}} |
||
[[Category:Webサーバ|*]] |
[[Category:Webサーバ|*]] |
||
74行目: | 119行目: | ||
[[Category:アプリケーションソフト]] |
[[Category:アプリケーションソフト]] |
||
{{Computer-stub}} |
{{Computer-stub}} |
||
[[ar:خادوم وب]] |
|||
[[bg:Уеб сървър]] |
|||
[[bs:Web server]] |
|||
[[ca:Servidor web]] |
|||
[[cs:Webový server]] |
|||
[[da:Webserver]] |
|||
[[de:Webserver]] |
|||
[[en:Web server]] |
|||
[[eo:Retservilo]] |
|||
[[es:Servidor web]] |
|||
[[fa:کارساز وب]] |
|||
[[fi:WWW-palvelin]] |
|||
[[fr:Serveur HTTP]] |
|||
[[he:שרת HTTP]] |
|||
[[hi:वेब सर्वर]] |
|||
[[hr:Web server]] |
|||
[[hu:Webkiszolgáló]] |
|||
[[ia:Servitor web]] |
|||
[[id:Server web]] |
|||
[[is:Vefþjónn]] |
|||
[[it:Server web]] |
|||
[[ko:웹 서버]] |
|||
[[lv:Tīmekļa serveris]] |
|||
[[mk:Веб-опслужувач]] |
|||
[[mn:Вэб сервер]] |
|||
[[ms:Pelayan web]] |
|||
[[nl:Webserver]] |
|||
[[no:Webserver]] |
|||
[[pl:Serwer WWW]] |
|||
[[pt:Servidor web]] |
|||
[[ru:Веб-сервер]] |
|||
[[sh:Web server]] |
|||
[[simple:Web server]] |
|||
[[sk:Webový server]] |
|||
[[sl:Spletni strežnik]] |
|||
[[sv:Webbserver]] |
|||
[[th:เว็บเซิร์ฟเวอร์]] |
|||
[[tr:Web sunucusu]] |
|||
[[uk:Веб-сервер]] |
|||
[[ur:معیل الحبالہ]] |
|||
[[zh:網頁伺服器]] |
2024年4月15日 (月) 08:49時点における版
Webサーバ(ウェブサーバ、英:Web server)は、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す。 広義には、クライアントソフトウェアとHTTPによる通信を行うプログラム及びコンピュータ。
実装
クライアントであるウェブブラウザのURLにて指示された、Webサーバ内に存在するHTMLドキュメントの各種情報を、クライアントから接続されたHTTPに則ったTCP/IPソケットストリーム(HTTPコネクションと呼ぶ)に送信する。多くの場合、クライアントのウェブブラウザとの間に複数のコネクションを張り、HTMLドキュメントとその配下の個々の情報ファイル(画像ファイル情報など)を並列して送り、処理時間を短縮してサービスを提供している。
また、HTMLドキュメントに各種処理を組み込み、CGIスクリプトやJava Servlet(サーバ側で実行されるJavaプログラム)と呼ばれるWeb画面に連動した動的処理を行う事が可能である。CGI処理においてはPerl・Ruby・PHPなどのスクリプト言語によって開発されることが多い。
Java Servletにおいては、Javaによる動的処理の負荷を分散するため、Java Servletを処理する機能を別サーバに切り出し、Webアプリケーションサーバとして、垂直分散(スケールアウト)する事も一般化している。
大規模なWebサービスを提供する場合、同じサービスを提供するWebサーバを並列して設置し、ロードバランサと呼ばれる各種ロジック(ラウンドロビン方式や処理中の負荷を計測して割り当てるサーバを決定するものや、サーバの性能を考慮して重み付けをする方式などが存在する)によりWebサーバへの処理を振り分ける装置を、Webサーバ群の前に置く事が多い。
これにより、Webサービスを提供する際のサーバ故障に対する可用性・信頼性を確保する(疎結合クラスターの一種と定義される)。
また、不特定多数のウェブブラウザ(クライアント)との接続を行うため、一般的にWebサーバ及びWebアプリケーションサーバにはDNSサーバとの連動設定を組み込む。
歴史
- 1989年
- 欧州原子核研究機構 (CERN) に在籍していたティム・バーナーズ=リーが「Information Management: A Proposal(情報管理:提案)」を執筆。彼が以前から持っていたWebシステムの素案を目に見える形で提案した。
- 1990年11月
- World Wide Web をより具体化した提案書を発表。1990年11月13日から開発が開始。
- 1990年12月〜1991年1月
- 現Webサーバ群の基になるHTTPサーバ『CERN httpd』と各種ツールをクリスマス休暇中に作成し、最初のWebページ展開(BSD系OSであるNEXTSTEP/NeXTワークステーションに実装)。
- 1991年8月
- Webサーバとラインベースのウェブブラウザによるプロジェクト成果の要約をニュースグループに投稿。これがWWWとWebサーバのデビューとなった。
- 1992年とそれ以降
- イリノイ大学の米国立スーパーコンピュータ応用研究所(NCSA)のロバート・マックールらが、CERN httpdに続く2番目の実装となる『NCSA HTTPd』を開発、また同じくNCSAの学生であったマーク・アンドリーセンらが、画像も表示できるウェブブラウザNCSA Mosaicを開発し、一般に急速に広まった。
- この時点では、Webサーバの主役は『CERN httpd』や『NCSA HTTPd』であった。しかし、改修が進まないという不満が募り、NCSA HTTPdに修正を加えるためのパッチ (patch) を集積するプロジェクトが始まった。その際、プロジェクトに Apache Group という名前を付け、開始したため、そのNCSA HTTPdのメンテを主(当初)とした派生版であるApache HTTP Serverの誕生につながり、主役を移すことになった。
2015年時点においては、Apache及びその派生版である各ベンダのHTTP Serverが市場の4割、マイクロソフトのIISが市場の3割、nginxが2割弱を占める[1]。2024年時点では、nginxが40%、Apacheが25%、Microsoftが10%弱となっている[2]。
元々、WebサーバはUNIX上で開発され発展してきた経緯もあり、当初からオープン系サーバと言われるUNIXサーバやWindows系サーバにより実装・提供されるのが普通である。ただし、システム構成上の都合により、HTTPやFTP、TCP/IPが利用可能な汎用コンピュータにて動作させる場合もある。
現在の代表的な実装
- Apache HTTP Server
- Internet Information Services
- 04webserver
- lighttpd
- Cherokee (web server)
- Hiawatha Webserver (英語版)
- thttpd
- RaidenHTTPD
- nginx
- Zope
他
歴史上の実装
- CERN httpd
- NCSA HTTPd
- AN HTTPD
- Tux Web Server
Tux Web Server
Tux Web Server(英語版)はかつて存在した HTTP サーバの実装であり、Linuxカーネルへのパッチとして書かれていた。静的なコンテンツのみを提供することと、カーネル層で動作することから、一般的なウェブサーバより高速と言われていた[3]。開発者は Red Hat のカーネルハッカー Ingo Molnár で、当初のバージョンは Red Hat Linux 6.2 および 7.0 向けにリリースされた[4]。カーネル内で動作し、ストレージとネットワークの双方に対してゼロコピーの入出力を行うことができた[5][6]。2009年頃にはその役目を終え、もはや保守されなくなっていた[7]。別名 Content Accelerator とも呼ばれていた[8]。
個別の製品の特徴
- Oracle HTTP Server(英語版)
- RDBMSベンダであるオラクルが提供するWebサーバ (Oracle HTTP Server) においては、Java EEを使用したWebアプリケーションサーバと連携して、HTMLドキュメント内にデータベースに検索を行わせるためのSQL文を直接記述し、データベースからデータをHTMLベースで呼び出して加工する事が可能となっている。
脚注
出典
- ^ November 2015 Web Server Survey netcraft
- ^ February 2024 Web Server Survey netcraft
- ^ “オープンソースの高速Webサーバー「TUX」の実力” (2005年11月16日). 2024年3月9日閲覧。
- ^ “Red Hat TUX Web Server”. 2024年3月9日閲覧。
- ^ “TUX 2.0 Reference Manual”. 2024年3月9日閲覧。
- ^ “ASCII.jp: Red Hat、Linuxカーネル内で動作する高速Webサーバをリリース” (2000年9月4日). 2024年3月9日閲覧。
- ^ “TUX installation” (2009年9月18日). 2024年3月9日閲覧。
- ^ “Red Hat Content Accelerator 2.2: Reference Manual”. 2024年3月9日閲覧。