It has been noticed that a significant number of customers make errors when filling in the address information page on the site. You have to write a new page to accept the name and address of the customer. It must allow them to enter standard titles for themselves (e.g. Mr, Mrs, Miss, etc.) from a dropdown list, however, it must give them the chance to enter a title that isn't on the list, but only if they select 'other' as their title. Also, you must do form validation to make sure that they have entered all the required details properly, including a valid Postcode/Zip code. Useful messages should appear when users have made a mistake and the form must not be able to be submitted until all errors have been resolved. You must create this page using, XHTML, CSS and JavaScript only. Show example output and describe your functions in your report. You should also include your mark-up and code in an appendix of your report. Don't forget to relate your solution back to the requirements.
Introduction:
As a view of an administrator it is consider as an authorization to serve some of customer service that based on their necessary information that will stored on server, as their name, address, email Id etc. stored on server. By filling those information customer may can purchases or order e-shopping or May server can identify their global position by administrator. I create the dynamic page that coded by XHTML, designed by CSS & finally validated by JavaScript.
Print screen of my dynamic page form:
Address entry Page
I create a dynamic page that coded by XHTML, designed by CSS & finally validated by JavaScript:
XHTML code of my dynamic form:
<div>
<div style=" background:#CCC">
<h1 class="title" align="center">Be a MEMBER</h1>
<p id="msg" style="visibility: hidden; font-weight: bold; color: red;">Some required fields are empty or contain invalid input</p>
<p style="visibility: hidden; font-weight: bold; color: red;"> </p>
</div>
<div id="register">
<form action="file:///D|/ISA_M613/Habibul haque_sir/form_new/success.htm" method="post" onsubmit="return validate();">
<fieldset>
<legend>Address Form:</legend>
<p> </p>
<div>
<label for="ttitle"> Title: </label>
<select id="ttitle" onChange="checktitle()">
<option value=""></option>
<option value="Mr.">Mr.</option>
<option value="Mrs.">Mrs.</option>
<option value="Miss">Miss</option>
<option value="Other">Other</option>
</select> <input id="totitle" size="10" type="text" style="visibility: hidden;" /><span id="stitle" style="visibility: hidden; color:red;">Title is required</span>
</div>
<div>
<label for="tname">Name: </label>
<input id="tname" type="text" onChange="checkname()" /> <span id="stname" style="visibility: hidden; color:red;">Name is required</span>
</div>
<div>
<label for="temail">Email: </label>
<input id="temail" type="text" onChange="checkemail()" /> <span id="stemail" style="visibility: hidden; color:red;">Enter valid email. Example: [email protected]</span>
</div>
<div>
<label for="taddress">Address: </label>
<textarea id="taddress" name="taddress" rows="4" cols="20" onchange="checkaddress()" style=" width:340px; height:100px;" ></textarea>
<span id="staddress" style="visibility: hidden; color:red;">Address is required</span>
</div>
<div>
<label for="tpost">Postcode: </label>
<input id="tpost" type="text" size="10" onChange="checkpostcode()" /> <span id="stpost" style="visibility: hidden; color:red;">Enter valid post code; Example: 1216, 1206</span>
</div>
<div>
<label for="btnsub"></label>
<input id="Reset1" type="reset" value="Reset" class="small" /> <input id="btnsub" type="submit" value="Register" class="small"/>
</div>
</fieldset>
</form>
</div>
</div>
Java script of my dynamic form:
<script language="javascript" type="text/javascript">
var ttype = 1;
function checktitle()
{
var valid=true;
var v= document.getElementById( "ttitle").value;
if( v=="")
{
valid = false;
document.getElementById( "stitle").style.visibility = "visible";
document.getElementById( "totitle").style.visibility = "hidden";
}
else if(v == "Other")
{
if(document.getElementById( "totitle").value=="")
{
valid = false;
document.getElementById( "stitle").style.visibility = "visible";
}
else
{
valid=true;
document.getElementById( "stitle").style.visibility = "hidden";
}
document.getElementById( "totitle").style.visibility = "visible";
}
else
{
document.getElementById( "stitle").style.visibility = "hidden";
document.getElementById( "totitle").style.visibility = "hidden";
}
return valid;
}
function checkname()
{
var valid=true;
var v= document.getElementById( "tname").value;
if(v == "")
{
document.getElementById( "stname").style.visibility = "visible";
valid = false;
}
else
{
document.getElementById( "stname").style.visibility ="hidden";
}
return valid;
}
function checkemail()
{
var valid=true;
var v= document.getElementById( "temail").value;
if(v == "")
{
valid = false;
document.getElementById( "stemail").style.visibility = "visible";
return valid;
}
var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
if(!email.test(v))
{
valid = false;
document.getElementById( "stemail").style.visibility = "visible";
return valid;
}
document.getElementById( "stemail").style.visibility = "hidden";
return valid;
}
function checkaddress()
{
var valid=true;
var v= document.getElementById( "taddress").value;
if(v == "")
{
document.getElementById( "staddress").style.visibility = "visible";
valid = false;
}
else
{
document.getElementById( "staddress").style.visibility ="hidden";
}
return valid;
}
function checkpostcode()
{
var valid=true;
var v= document.getElementById( "tpost").value;
//alert( v);
if(v == "")
{
valid = false;
document.getElementById( "stpost").style.visibility = "visible";
return valid;
}
var post = /(^\d{4}$)/;
if(!post.test(v))
{
valid = false;
document.getElementById( "stpost").style.visibility = "visible";
return valid;
}
document.getElementById( "stpost").style.visibility = "hidden";
return valid;
}
function validate()
{
var valid=true;
if(!checktitle())
{
document.getElementById( "msg").style.visibility = "visible";
valid = false;
}
if(!checkname())
{
document.getElementById( "msg").style.visibility = "visible";
valid = false;
}
if(!checkemail())
{
document.getElementById( "msg").style.visibility = "visible";
valid = false;
}
if(!checkaddress() )
{
document.getElementById( "msg").style.visibility = "visible";
valid = false;
}
if(!checkpostcode() )
{
document.getElementById( "msg").style.visibility = "visible";
valid = false;
}
return valid;
}
</script>
</head>
<body>
<div id="wraper">
<div>
Cascading Style Sheets (CSS) of my dynamic form:
body {
margin: 0 auto;
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 13px;
color: #000000;
}
#wraper{
margin:0 auto;
width:800px}
#div{
margin: 0 auto;
text-align:center}
/* Register */
#register {
float: left;
margin: 0 auto;
padding-bottom: 5px;
padding-top: 5px;
margin-left:175px;
}
#register form {
margin: 0;
padding: 0;
}
#register fieldset {
margin: 0;
padding: 0;
border:none;
}
#register legend {
padding:0;
margin:0;
font-size: 130%;
font-weight: bold;
color: #000;
}
#register label {
display: inline-block;
font-size: 90%;
font-weight: bold;
padding:0;
margin: 0;
width: 150px;
}
#register div {
padding:0;
margin: 5px 0 0 0;
}
#register textarea {
display: block;
width: 460px;
height: 200px;
}
.panel {
margin-bottom:5px;
}
.panel1 p{
margin-bottom:5px;
background-color: #ccc;
}
Initializing Title:
At first of starting fill-up the form user must select a title before his/her name such as a title as (shown on Figure: 1) Mr. or Mrs. Like this. If any different occurred then there is another option (Shown on Figure: 2) as "other" user may can select to include his personal title as Dr. or Eng. etc. or otherwise page will display an error as "title is required" but when the function will be valid then the function permission to next in name field. Other then it is not accepted.
Figure: 1
Figure: 2
When Error occurred:
During filling the form if customer escapes any field that must require for complete successful submission, it displayed an error to fill the required field correctly. For example if customer leave the title field to Initialize, then instantly customer faced the "Title is required" error that will indicate fill the title.
How to fill fields:
First of the factors that every field should fill-up with their own characteristics such as Title: Mr. /Miss. / other (Dr. / Eng.). as Name: Emon, Shakil, Monju. As email:[email protected]. Caution it is not acceptable without using Global symbol @/. / com. org. net. edu etc.
Address entry:
Customer should enter their address, field address box to help (Location identifier a registry member). It'll be done if & only if both of field fills perfectly.
Postcode:
For better information about a customer it requires users postal or zip code & locator address. Postcode box does not support any type of article Like a, b, o, z. Postcode box only support 4 caret digit Like 1201, 1210.
Finalizing Form:
After completing the required field perfectly then press the Register button if any field need to be changed press the reset button (if this reset button is working all field empty as a user can be type of again a new value as is well new registrar submitted )
Task 2
TASK-2
Server-side Code
You must now create a server-side page, on a platform of your choice, to accept the form input data from the previous task and write it to a CSV (Comma Separated Value) text file on the server for later import into a mail merge. A helpful personalized message should be displayed to the user so that they know submission has taken place successfully. Validate that the CSV file has been written properly by importing it into a spreadsheet package and making sure that each value appears in a different cell. Once again, you are expected to show example output and describe the functionality of your code in the report. Your actual code should be included in an appendix. Don't forget to relate your solution back to the requirements.
Description:
My Address Entry Page using XHTML 1.0 street validation process JAVA script and also included CSS. This Address Entry Page content described above (excluding the Address Entry Page) and meets the discus located on compact DISC.
Task 3
TASK-3
Google Analytics:
Your next task as the administrator of the website is to log access and usage. To do this, you have decided to use Google Analytics. Write a report on Google analytics, demonstrating that it can fulfill the requirements set out in this scenario and how it is integrated into your site.
Google Analytics:
With Google Analytics, you can gather, view, and analyze data about your website traffic. By embedding our basic JavaScript snippet into your pages, you see which content gets the most visits, average page views and time on site for visits, which ads are driving the most visitors to your site, and more. You can also use the simple administrative interface to set up goals and filters to control what data goes into your reports based on your business needs.
Google Analytics (GA) is a free service offered by Google that generates detailed statistics about the visitors to a website. Its main highlight is that the product is aimed at marketers as opposed to webmasters and technologists from which the industry of web analytics originally grew. It is the most widely used website statistics service [1], currently in use at around 57% of the 10,000 most popular websites. Google Analytics is implemented by including what is known as a "page tag". This is referred to as the Google Analytics Tracking Code (GATC) and is a hidden snippet of JavaScript code that the user adds onto every page of his or her website. This code acts as a beacon, collecting private visitor data and sending it back to Google data collection servers for processing. Data processing takes place hourly, though it can be 3-4 hours in arrears of real time. However, a comment on a web analytics blog from a Google employee indicates that not all data is processed for approximately 12 hours after collection.
To function, the GATC loads a larger file from the Google webserver and then sets variables with the user's account number. The larger file (currently known as ga.js) is typically 18 KB in size and is only downloaded once at the start of the visit as it will be cached throughout the session. As all websites that implement GA with the ga.js code are using the same master file from Google, a visitor that has previously visited any other website with this code implemented, will also have the file cached on their machine. The result is that the page overhead of including the GATC on web pages is kept to a minimum.
In addition to broadcasting information to Google servers, the GATC sets first party cookies on each visitor's computer. This is used to store anonymous information such as whether the visitor has been to the site before (new or returning visitor), what is the timestamp of the current visit and what was the referrer site or campaign the visitor came from e.g. search engine, keywords, banner, email etc.
Benefits of using Google Analytics
Explain some benefits of using Google Analytics:
Fully free of charge:
It is a free tool, but it still offer just as much or evens much functionality when compared to other paying tools.
2. Identify which pages and links your visitors click the most:
You will be able to know which are the popular link and pages, and measure whether your optimization campaign is directing the traffic to the correct pages.
3. Visitor segmentation:
You will be able to know how many new visitors that your search engine optimization campaign brings to you. You can segment your analytic result by new/returning visitors, geography and referral sources.
4. Fine tune your website:
You will be able to fine tune your website, and do a new copywriting on any page that is not converting well. In the end, it will bring you more quality prospects, and thus gaining more customers in the near future. Other than collecting data about traffic from Google, you will also be able to collect data traffic from MSN and Yahoo! search results with respect to your site and use it to strengthen your stronghold on the search platform.
Basic Information of Google analytics:
Google provides search and advertising services, which together aim to organize and monetize the world's information. In addition to its dominant search engine, it offers a plethora of online tools and platforms including: Gmail, Maps and YouTube. Most of its Web-based products are free, funded by Google's highly integrated online advertising platforms Ad Words and AdSense. Google promotes the idea that advertising should be highly targeted and relevant to users thus providing them with a rich source of information.
Analytics Overview:
Analytics and Tracking
Analytics or web analytics is gathered by measuring internet data either directly or indirectly. BuiltWith tracks on-site analytical systems that are typically identified by their javascript signature. Analytics typically works by allowing the javascript tag to perform certain functions such as creating a cookie (that allows return visitor tracking, bounce tracking) and testing browser functionality (version, screensize) as well as this the request provides the tracking code with information regarding the location of the visitor. All of this information is aggregated and compiled into the analytical information made available to the user.
Analytics Distribution:
Distribution of the top web technologies.
Google Analytics slows down webpages:
Google Analytics used to offer a simpler (older) code which did less things for you (according to Google).
Here it is:
<! -- Start of GoogleAds Code -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-xxxxxx-y");
pageTracker._trackPageview();
} catch(err) {}</script>
<!-- End of GoogleAds Code -->
Google Analytics Usage Statistics:
Percent of websites using Google Analytics
Google Analytics offers a host of compelling features and benefits for everyone from senior executives and advertising and marketing professionals to site owners and content developers.
This chart represents Google Analytics penetration over a historical time period on a large selection of website homepages queried by BuiltWith.
Understanding Goals in Google Analytics:
Goals (with a capital G) are a way to measure business objectives for your website in Google Analytics. Goals must correspond to a measurable action performed by your website's visitors, for example, a visit to a "thank you" page. This combination of a business objective and a measurable action make up a Goal. Here are some common examples.
To use a real world example, the Lakers objective is to win games, and the measurable action is scoring baskets. Keeping this goal in mind helps the team focus on winning and not worry about things that don't matter -- like the number of times the team is photographed or their average height. Goals serve this same purpose in Google Analytics.
Creating a Goal:
There are multiple ways to define a goal. The method you choose depends on the complexity of your website. The easiest way to create a goal is to copy the URL of your goal page from a browser into the Goal URL text field. So, if the process ends with
http://www.cutroni.com/thankyou.php, enter http://www.cutroni.com/thankyou.php in the Goal URL field. Here's another example. If the URL of the goal page is http://www.cutroni.com/thankyou.php?submit=true then enter http://www.cutroni.com/thankyou.php?submit=true into the Goal UL field.
Google Analytics to track Feed Subscriptions:
Being able to see which of your posts attract the most subscribers to your blog can be a powerful tool. You can use it to find out what sort of content your readers & prospective readers really connect with. Unfortunately the functionality doesn't come "out of the box" with Google Analytics, it takes a little bit of tweaking. In this tutorial we'll show you how to set up Google Analytics to track your Feed Subscriptions as a Goal which you can then see in your reports.
Add the Goal to your Profile:
Select the edit button on your main profile page:
Then select edit again on Goal 1 the Conversion Goals & Funnels area (you can set up multiple Goal points if you have multiple feed points):
Choose head match (this matches the /feed/ in the URL) then give the goal a name. You can enter a value for the goal, I normally count feed subscriptions to be worth $1 initially:
Goal name:
When defining a goal you also need to give the goal a name. There's nothing special here. The Goal name will be used to identify the goal in the Google Analytics reports. Don't use anything too long, it can make the reports difficult to read.
Active Goal:
The Activate Goal setting is an on-off switch. Switching the setting to 'Off' will stop tracking for the goal. Why would you want to turn a goal off? Google Analytics will calculate an overall website conversion rate using all of the goals you define for the site. If you create a goal that is temporary, say for a specific campaign, then it could artificially skew the overall site conversion rate if you leave the goal on after the campaign, ends.
Additional Settings:
Each goal has an Additional Settings section that can help configuration in unique situations. It's located at the bottom of the page under the Funnel settings. By the way, you do not need to create a funnel when you create a goal. Defining a funnel is optional.
Case Sensitive:
The Case sensitive setting can be used with websites that have mixed-case URLs. So, if your Goal URL value is case sensitive then click the Yes radio button. However, profile filters can affect this setting. I'll explain more at the end of this post.
Match Type:
The Match Type setting is a powerful setting that can aid in goal tracking. For example, if each goal page contains a unique customer identifier then it will be impossible to paste a single URL into the Goal URL field without the use of the more sophisticated match types. Google Analytics has three different match types that can be used for Goals and Funnels.
Add the Onclick Tracking to your Feed buttons:
Now we need to add the tracking to all the instances of your feed you have on the blog. Typical instances include:
Feed in the sidebar
Feed after every post
Feed in the top Nav or header
To do this you need to modify the href code of the link to your feed.
href="http://storecrowd.com"/blog/feed/" onclick="pageTracker._trackPageview('/feed/');"
Analyzing the Data:
Click on the goals tab in the left navigation in Google Analytics gives you an overview of the total number of goals during the selected time period, including total value (indicated by the value your gave the goal) & also the overall conversion rate:
Google analytics Goals Overview:
The reverse goal path will show you the most popular pages that actually led to someone triggering the goal you've set up:
Going to all traffic sources & clicking on the Goal tab will allow you to see which of your overall traffic sources have best attributed to your overall Goal number during the time period you set:
Final Note:
This method is not 100% accurate as it does not track people clicking the Firefox URL bar Feed icon (which many people use to add a feed). However the method is great for tracking the performance of different RSS placements on your site
Reference:
http://blog.vkistudios.com/index.cfm/2010/4/27/Google-Website-Optimizer-and-Google-Analytics--Interpreting-the-Data
http://storecrowd.com/blog/analytics-track-subscriptions/
http://analytics.blogspot.com/2009/05/how-to-setup-goals-in-google-analytics.html
http://trends.builtwith.com/analytics/Google-Analytics
Task 4
TASK-4
Security:
As with all online retailing solutions, security is of paramount importance, but particularly for an online retailer. Write a short report describing the security requirements that an online retailer has and suggest what technologies you would employ and what configuration changes you would need to make on your site in order to fulfill those requirements.
Explanation:
Explain Some major Security requirements that online retailers has and suggest what technologies you would employ and what configuration changes you would need to make on your site in order to fulfill those requirements.
Security Requirements:
When security requirements are considered at all during the system life cycle, they tend to be general lists of security features such as password protection, firewalls, virus detection tools, and the like. These are, in fact, not security requirements at all but rather implementation mechanisms that are intended to satisfy unstated requirements, such as authenticated access. As a result, security requirements that are specific to the system and that provide for protection of essential services and assets are often neglected. In addition, the attacker perspective is not considered, with the result that security requirements, when they exist, are likely to be incomplete. We believe that a systematic approach to security requirements engineering will help to avoid the problem of generic lists of features and to take into account the attacker perspective. Several approaches to security requirements engineering are described here and references are provided for additional material that can help you ensure that your products effectively meet security requirements.
Levels of security are related to sensitivity of Information:
Information available to general Public (Internet)
Information available to system users
Information available to Departments
Information available to Other
Organization Administrators
Information and System
privileges available to
In today's world of daily virus alerts, malicious crackers, and the threats of cyber-terrorism, it would be well to remember the following objectives of security requirements:
Ensure that users and client applications are identified and that their identities are properly verified.
Ensure that users and client applications can only access data and services for which they have been properly authorized.
Detect attempted intrusions by unauthorized persons and client applications.
Ensure that unauthorized malicious programs (e.g., viruses) do not infect the application or component.
Ensure that communications and data are not intentionally corrupted.
Ensure that parties to interactions with the application or component cannot later repudiate those interactions.
Ensure that confidential communications and data are kept private.
Enable security personnel to audit the status and usage of the security mechanisms.
Ensure that applications and centers survive attack, possibly in degraded mode.
Ensure that centers and their components and personnel are protected against destruction, damage, theft, or surreptitious replacement (e.g., due to vandalism, sabotage, or terrorism).
Ensure that system maintenance does not unintentionally disrupt the security mechanisms of the application, component, or center.
To meet the above objectives, we will briefly address each of the following corresponding kinds of security requirements:
Identification Requirements
Authentication Requirements
Authorization Requirements
Immunity Requirements
Integrity Requirements
Intrusion Detection Requirements
Nonrepudiation Requirements
Privacy Requirements
Security Auditing Requirements
Survivability Requirements
Physical Protection Requirements
System Maintenance Security Requirements
Requirements problems are among the top causes of why
projects are significantly over budget
projects are past schedule
projects are significantly reduced in scope or are cancelled
development teams deliver poor-quality applications
products are not significantly used once delivered
The following guidelines have proven useful with eliciting, analyzing, specifying, and maintaining security requirements:
Security Policy:
A security requirement is typically a detailed requirement that implements an overriding security policy.
Correctness Requirements:
Security requirements depend on correctness requirements because implementation defects are often bugs that produce security vulnerabilities. Thus, using a type-unsafe languages such as C can result in array boundary defects that can be exploited to run malicious scripts.
Feasibility:
It is impossible to build a 100% secure business, application, component, or center. Increasing security typically:
Increases the associated cost.
Increases the associated schedule.
Decreases the associated usability.
Misuse Cases
Whereas functional requirements are now typically specified as use cases, traditional narrative English language security requirements can often be analyzed, refined, and thus further specified as misuse or abuse cases [Sindre and Opdahl 2001] [Alexander2003] whereby:
The user client external (human actor or application) of a use case is replaced by a misuser (e.g., cracker or disgruntled employee) who attempts to violate the security of an application, component, or center.
The normal user-initiated interactions of the user case are replaced by the misuser-initiated attack interactions of the misuse case.
The required application or component response interactions and postconditions of the user case are replaced by the required application or component security-oriented responses and post conditions of the misuse case.
Note that whereas goals drive use case requirements, threats drive misuse case requirements.
Note also that a very common problem with using misuse cases as a requirements approach is that they often assume the prior existence of architectural security mechanisms to be thwarted, and thus misuse cases may be better suited for security threat analysis and the generation of security test cases than for specifying security requirements. If misuse cases are to be used for requirements, they should be 'essential' misuse cases that do not contain unnecessary architecture and design constraints.
Threats vs. Goals
Whereas most requirements are based on higher level goals, security requirements are driven by security threats. Thus, whereas most requirements are stated in terms of what must happen, security requirements are often specified in terms of what must not be allowed to happen. Part of security engineering is therefore similar to (and can be thought of as a specialized form of) risk management. Therefore, base the security requirements on the results of a thorough security risk assessment by the security team. Such an assessment identifies the significant threats and their associated estimated frequencies, individual losses, and yearly losses. This allows the requirements team to ensure that the security requirements are cost effective.
Reference:
http://www.jot.fm/issues/issue_2003_01/column6/
https://buildsecurityin.us-cert.gov/bsi/articles/best-practices/requirements/243-BSI.html
Task 5
TASK-5
Server Hosting:
Your site is currently hosted by an ISP on a Virtual Host. You are expecting the volume of traffic to your site to increase and you wish to add more advanced functionality to the site in the future. Due to this, you decide to investigate alternative hosting solutions. The options you are considering are: hosting it yourself, co-locating or virtual servers. Write a report stating the requirements of the solution, introducing the technologies of the three options and making a decision about which technology you think is right for your site. Remember to justify your decision.
Co-Located Server:
Colocation is a hosting option for small businesses who want the features of a large IT department without the costs. Many large corporations have the Internet infrastructure to host their own web servers and have a team of IT professionals to manage and design the site, individuals and small companies do not. There is a wide range of options available from simple hosting up to running the own Web servers off of a dedicated Internet connection. One such option is colocation.
Colocation allows placing my server machine in someone else's rack and sharing their bandwidth as my own. It generally costs more than standard Web hosting, but less than a comparable amount of bandwidth into my place of business. I have a machine set up, I take it physically to the location of the colocation provider and install it in their rack or my rent a server machine from the colocation provider. That company then provides an IP, bandwidth, and power to my server. Once it's up and running, I access it much like I would access a Web site on a hosting provider. The difference being that my own hardware.
Virtual Server:
Virtual server hosting offers clients a cost-effective option for hosting their websites in a way that appears to be dedicated, yet does not have the high price of dedicated hosting. In a virtual server hosting environment, the host company sets up multiple virtual machines on one physical machine, allowing several clients to host their websites without being impacted by the other sites that share the server. Those who are in the market for this type of virtual private hosting have three operating system options: FreeBSD, Windows or Linux based hosting. For many, the debate comes down to which operating system they prefer.
Uses:
Virtual web hosting is often used on large scale in companies whose business model is to provide low cost website hosting for customers. The vast majority of such web hosting service customer websites worldwide is hosted on shared servers, using virtual hosting technology. Many businesses utilize virtual servers for internal purposes, where there is a technology or administrative reason to keep several separate websites such as customer extranet website, employee extranet, internal intranet, intranets for different departments. If there are not security concerns in the website architectures, they can be merged into a single server using virtual hosting technology, which reduces management and administrative overhead and the number of separate servers required to support the business.
Advantages of Virtual Private Server:
Insulation: Each virtual server is isolated from other virtual server means one cannot access the feature of another virtual server. If there is crash of one virtual server then it has no effect on the other virtual server. Performance of VPS is higher than the shared hosting as each server has specified allocation of CPU, memory, and disk space. One virtual server can't permit another server to dominate or use its allocated resources. Another advantage of using the VPS is security. As each website has its own resources and operating system then it is difficult for another virtual server to invade the security. Also VPS provide security for the traffic and the mail. Each virtual server can install its own operating system and can install or upgrade any software in their domain.
Disadvantages of Virtual Private Server:
Main disadvantage of this type of servers is maintenance problem as each virtual server has its own operating system so it is very difficult for the web host to maintain all the operating system and ensuring the Uptime. The web is responsible for security, maintenance and updates.
Sometimes the web host does not provide the actual resource as they commit to provide as most of the time virtual server does not use his full resources, so it is difficult to handle operations at a peak level. As I can use the only allocated resources so it is sometime difficult to handle the unexpected the large traffic. Mismanagement of too many virtual servers residing on the same computer, or if a few virtual servers start utilizing other resources, there may be an observable decrease in speed and performance on web page delivery.
Shared Web Hosting:
Shared web hosting (also called virtual hosting) is the most common type of hosting service used. As the word implies, shared web hosting means that you are sharing one server (CPU time, memory, OS, applications, bandwidth, etc) with a number of clients of your hosting company. The webhost manages the server to ensure uptime, upgrading hardware and software. The cost of shared hosting often depends on the number of clients being hosted on a server as the hosting company tries to maximize profits per server. You will have no control over the server but full control over your website through a
Control Panel.
When shopping for shared web hosting, you must check the terms of service to see if there are any scripts or types of software that aren't allowed by the host. Since all the resources are shared, it is important to ensure that no one user is hogging the pooled resources. Server software like Apache or IIS allows the administrators to localize any errors or unusual CPU utilization so as to not affect the other users, but there remains a possibility of a problem occurring and all the websites on a given server going down.
Dedicated Hosting
With dedicated hosting, your web site is hosted on a dedicated server.
Dedicated hosting is the most expensive option. This option is best suited for large web sites with high traffic, and web sites that use special software.
You should expect dedicated hosting to be very powerful and secure, with almost unlimited software solutions.
Good:
Bad:
Good for large business.
Expensive.
Good for high traffic.
Requires higher skills.
Multiple domain names.
Powerful email solutions.
Powerful database support.
Strong (unlimited) software support.