{"id":711,"date":"2016-10-21T01:53:45","date_gmt":"2016-10-20T22:53:45","guid":{"rendered":"https:\/\/community.virtono.com\/?p=711"},"modified":"2016-10-21T01:53:45","modified_gmt":"2016-10-20T22:53:45","slug":"web-servers-must-know-introduction","status":"publish","type":"post","link":"https:\/\/www.virtono.com\/community\/news-announcements\/web-servers-must-know-introduction\/","title":{"rendered":"Web Servers : Must Know Introduction"},"content":{"rendered":"<p>Web Server Definition<\/p>\n<p>A Web server is a program that generates and transmits responses to client requests for Web resources.<\/p>\n<p>\uf0a7 Handling a client request consists of several key steps:<\/p>\n<p>\uf0d8 Parsing the request message<\/p>\n<p>\uf0d8 Checking that the request is authorized<\/p>\n<p>\uf0d8 Associating the URL in the request with a file name<\/p>\n<p>\uf0d8 Constructing the response message<\/p>\n<p>\uf0d8 Transmitting the response message to the requesting client<\/p>\n<p>The server can generate the response message in a variety of ways:<\/p>\n<p>\uf0d8 The server simply retrieves the file associated with the URL and returns the contents to the client.<\/p>\n<p>\uf0d8 The server may invoke a script that communicates with other servers or a back-end database to construct the response message.<\/p>\n<p>Web Site versus Web Server<\/p>\n<p>\uf0a7 Web site and Web server are different:<\/p>\n<p>\uf0d8 A Web site consists of a collection of Web pages associated with a particular hostname.<\/p>\n<p>\uf0d8 A Web server is a program to satisfy client requests for Web resources.<\/p>\n<p>Steps in Handling a Client Request<\/p>\n<p>\uf0a7 A Web server proceeds through the following steps in handling an HTTP request:<\/p>\n<p>\uf0d8 Read and parse the HTTP request message for example GET the resource \/foo.htm<\/p>\n<p>\uf0d8 Translate the URL to a file name for example the resource be located in the base directory such as \/www, where the URL http:\/\/www.bar.com\/foo\/index.html corresponds to the file of www\/foo\/index.html<\/p>\n<p>\uf0d8 Determine whether the request is authorized<\/p>\n<p>\uf0d8 Generate and transmit the response that includes header to show the status information<\/p>\n<p>Access Control<\/p>\n<p>\uf0a7 A Web server may limit which users can access certain resources. Access control requires a combination of authentication and authorization.<\/p>\n<p>\uf0d8 Authentication identifies the user who originated the request. \uf0d8 Authorization determines which users have access to a particular resource.<\/p>\n<p>AUTHENTICATION<\/p>\n<p>\uf0a7 Most client-server systems authenticate a user by asking for a name and password.<\/p>\n<p>\uf0a7 Web server must perform authentication for every request for a resource that has access restrictions.<\/p>\n<p>\uf0a7 The server returns an HTTP response that indicates that the request requires authorization.<\/p>\n<p>\uf0a7 The response also identifies what kind of authentication is required.<\/p>\n<p>\uf0a7 The response also identifies the realm \uf0d8 a string that associates a collection of resources at the server<\/p>\n<p>AUTHORIZATION<\/p>\n<p>\uf0a7 To control access to Web resources, the server must employ an authorization policy.<\/p>\n<p>\uf0a7 A policy typically expressed in terms of an access control list that enumerates the users who are granted or denied access to the resources.<\/p>\n<p>\uf0a7 In addition to checking the user name, the server may allow or deny access to the resource based on other information associated with the HTTP request, such as the host name or IP address of the requesting client.<\/p>\n<p>\uf0a7 Authenticating HTTP requests can impose a heavy load on the Web server.<\/p>\n<p>Dynamically Generated Responses<\/p>\n<p>\uf0a7 This feature differentiates the Web from earlier file transfer services on the Internet.<\/p>\n<p>\uf0a7 Dynamically generated responses are created in a variety of ways:<\/p>\n<p>\uf0d8 Server-side include<\/p>\n<p>\uf0d8 Server script<\/p>\n<p>Server-Side Include<\/p>\n<p>\uf0a7 A server-side include instructs the Web server to customize a static resource based on directives in an HTML-like file.<\/p>\n<p>Server Script<\/p>\n<p>\uf0a7 A server script is a separate program that generates the request resource.<\/p>\n<p>\uf0a7 The program may run as<\/p>\n<p>\uf0d8 Part of the server<\/p>\n<p>\uf0d8 A separate process<\/p>\n<p>\uf0a7 The main role of the Web server is<\/p>\n<p>\uf0d8 To associate the requested URL with the appropriate script<\/p>\n<p>\uf0d8 To pass data to\/from the script<\/p>\n<p>\uf0a7 The main role of the script is<\/p>\n<p>\uf0d8 To process the input from the server<\/p>\n<p>\uf0d8 To generate the content to the client<\/p>\n<p>Server Script<\/p>\n<p>\uf0a7 The server can interact with the script in several different ways:<\/p>\n<p>\uf0d8 Separate process invoked by the server<\/p>\n<p>\uf0d8 Software module in the same process<\/p>\n<p>\uf0d8 Persistent process contacted by the server<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web Server Definition A Web server is a program that generates and transmits responses to client requests for Web resources. \uf0a7 Handling a client request consists of several key steps: \uf0d8 Parsing the request message \uf0d8 Checking that the request is authorized \uf0d8 Associating the URL in the request with<\/p>\n","protected":false},"author":3,"featured_media":712,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-711","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-announcements"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/10\/smtp-server.jpg?fit=3000%2C2000&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7ISfL-bt","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":218,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/introduction-to-server\/","url_meta":{"origin":711,"position":0},"title":"INTRODUCTION TO SERVER","author":"Daniel Draga","date":"July 30, 2016","format":false,"excerpt":"Servers are the one that is responsible to provide response to each client\u2019s request simultaneously. A Server may be responsible to process a single request or more than one request at a time. \u00a0 A\u00a0server\u00a0is a system (software\u00a0and suitable\u00a0computer hardware) that responds to requests across a\u00a0computer network\u00a0to provide, or help\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/server-rack1.jpg?fit=1200%2C857&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/server-rack1.jpg?fit=1200%2C857&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/server-rack1.jpg?fit=1200%2C857&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/server-rack1.jpg?fit=1200%2C857&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/server-rack1.jpg?fit=1200%2C857&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":214,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/secure-socket-layer-ssl\/","url_meta":{"origin":711,"position":1},"title":"Secure Socket Layer (SSL)","author":"Daniel Draga","date":"July 30, 2016","format":false,"excerpt":"SSL stands for Secure Socket Layer. Secure Socket Layer (SSL) technology allows web browsers and web servers to communicate over a secure connection Originally developed by Netscape, SSL has been universally accepted on the World Wide Web for authenticated and encrypted communication between clients and servers. Responsible for the emergence\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/2.jpg?fit=376%2C286&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":267,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/types-of-servers\/","url_meta":{"origin":711,"position":2},"title":"Types Of Servers","author":"Daniel Draga","date":"July 30, 2016","format":false,"excerpt":"File Servers A file server may be dedicated or non-dedicated. \u00a0A dedicated server is designed specifically for use as a file server\u00a0 not for other database purposes. File servers may also be categorized by the method of access: Internet file servers are frequently accessed by File Transfer Protocol (FTP) or\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-3.jpg?fit=940%2C500&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-3.jpg?fit=940%2C500&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-3.jpg?fit=940%2C500&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-3.jpg?fit=940%2C500&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":1296,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/arm-apache-for-denial-of-service-attacks\/","url_meta":{"origin":711,"position":3},"title":"Arm Apache for denial-of-service attacks","author":"Daniel Draga","date":"January 7, 2018","format":false,"excerpt":"A little thought experiment: You want to write a web server, so program a socket-based server.\u00a0When a browser connects to it and requests a file, it delivers it, the client terminates the connection, and everyone is satisfied.\u00a0But then suddenly there is a bug report from someone whose web server is\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/01\/ddos-attack-ex-100695385-large.jpg?fit=699%2C474&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/01\/ddos-attack-ex-100695385-large.jpg?fit=699%2C474&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/01\/ddos-attack-ex-100695385-large.jpg?fit=699%2C474&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":1293,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/fix-apache-internal-server-error-due-to-htaccess-bad-flag-delimiter\/","url_meta":{"origin":711,"position":4},"title":"Fix Apache Internal Server Error due to htaccess bad flag delimiter","author":"Daniel Draga","date":"January 6, 2018","format":false,"excerpt":"The Apache web server has several causes that cause an\u00a0internal server error\u00a0.\u00a0One possible cause is erroneous entries in an htaccess file, for example due to incorrectly defined forwarding.\u00a0In this article we describe how you can narrow down the problem and fix the cause. error message Internal Server Error Your Apache\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/01\/hqdefault.jpg?fit=480%2C360&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":235,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/lamp-technology\/","url_meta":{"origin":711,"position":5},"title":"LAMP TECHNOLOGY","author":"Daniel Draga","date":"July 30, 2016","format":false,"excerpt":"LAMP STANDS FOR: L:Linux A:Apache M:MySQL P:PHP What is LAMP? LAMP is a shorthand term for a web application platform consisting of Linux, Apache, MySQL and one of Perl or PHP. Lamp is an\u00a0 OPENSOURCE Together, these open source tools provide a world-class platform for deploying web applications TECHNOLOGIES USED\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-1.png?fit=1200%2C750&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-1.png?fit=1200%2C750&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-1.png?fit=1200%2C750&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-1.png?fit=1200%2C750&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/ic-1.png?fit=1200%2C750&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/comments?post=711"}],"version-history":[{"count":1,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/711\/revisions"}],"predecessor-version":[{"id":713,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/711\/revisions\/713"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media\/712"}],"wp:attachment":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media?parent=711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/categories?post=711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/tags?post=711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}