Web Technology Programming (Practical) Unit Description:
This unit specifies competencies required to design a website. It involves gathering data required, determining website design tool, developing a functional website and host a website developed.
Summary of Learning Outcomes
By the end of this course, the learners should be able to:
(a) Gather data required to develop a functional website.
(b) Determine website design tools
(c) Develop a functional website
(d) Host website developed
INTRODUCTION
Terms
- Internet: Wide area network connecting computers and other electronic devices globally. Also called the Net.
- Internet Service Provider (ISP): The ISP is commercial organization that provides internet connections, along with a set of support services for a fee. Bandwidth and cost are two considerations when deciding which commercial ISP service to use. Bandwidth refers to the amount of data that can be transferred through a communications medium in a fixed amount of time.
- Web browsers are software programs that allow users to access the web content.
- URL (Uniform Resource Locator) specifies the address (i.e., location) of the web page displayed in the browser window. Each web page on the Internet is associated with a unique URL. URLs usually begin with http://, which stands for Hypertext Transfer Protocol (HTTP), the standard protocol (or set of communication rules) for transferring web documents over the Internet. HTTP is a data communication protocol used to establish communication between client and server.
- Viewing Source Code, or the original code written to create the web page you are viewing. Source code allows the viewer to understand how the programmer created the page.
- Search Engines
- The File Transfer Protocol (FTP) is a set of rules used to transfer data, especially large files, over the Internet. An FTP site’s URL begins with ftp:// rather than http://, and can also be accessed either with the web browser or software that supports FTP. Transferring a file from the local machine to another location on the Internet is called uploading and can be accomplished using the FTP protocol
- A website is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet address also called Uniform Resource Locator (URL).
- A Web Page: a document, written in plain text with formatting instructions of Hypertext Markup Language (HTML, XHTML). A web page may incorporate elements from other websites with suitable markup anchors. Web pages are accessed and transported with the Hypertext Transfer Protocol (HTTP)
- A Web Server: A website is hosted on a computer system known as a web server. It retrieves and delivers the web pages in response to requests from the website users.
The basic objective of a web server is to store, process and deliver web pages to the users. This intercommunication is done using HTTP Protocol. A web server also supports SMTP and FTP protocols for Emailing and for file transfer and storage.
Apache Web Server, Microsoft's Internet Information Server (IIS), NGINX, Apache Tomcat, are examples of commonly used web server software
- Technologies such as HyperText Markup Language (HTML), JavaScript, CSS and Extensible Markup Language (XML) are used to build the portions of web-based applications that reside on the client side (i.e., the portions of applications that typically run on web browsers such as Firefox or Microsoft’s Internet Explorer).
- Technologies such as web servers, databases, ASP, PHP, Ajax, Ruby on Rails and Java are used to build the server side of web-based applications. These parts of applications typically run on “heavy-duty” computer systems on which organizations’ business-critical websites reside.
- A Static Website
- Static websites are ones that are fixed and display the same content for every user, usually written exclusively in HTML and CSS.
- The website can look beautiful with multimedia elements and videos but the page’s source code won’t change, no matter what actions a user takes on it.
- Visitors are not able to control what information they receive via a static website
- The only way a user can interact with a static page is by clicking hyperlinks and filling Forms.
- Static website are good for those who want to build informational websites like company’s brochure site.
- They are edited using three broad categories of software:
ü Text editors, such as (Notepad, Sublime Text, Atom, TextEdit, Visual Studio Code), where content are manipulated directly within the editor program. With text based editors, you can’t see live preview of the site.
ü WYSIWYG-What you see is what you get. The editors that provide and editing interface that shows how the code looks on a working web page.
- WYSIWYG offline editors, such as Microsoft FrontPage and Adobe Dreamweaver, with which the site is edited using a GUI interface and the final HTML markup is generated automatically by the editor software
- WYSIWYG online editors which create media rich online presentation like web pages, widgets, intro, blogs, and other documents.
ü Template-based editors, such as Rapidweaver and iWeb,
HTML Editors have basic features like syntax highlighting, inserting common HTML elements, auto completion and intelliSense (Smart Completions based on your types, functions and modules)
- Dynamic Website
A dynamic website is one that can display different content and provide user interaction, by making use of advanced programming and databases in addition to HTML.
- Compared to static websites, which are purely informational, a dynamic website is more interactive and functional.
- Dynamic websites rely on both client-side and server-side scripting languages
e.g. JavaScript, PHP or ASP. Client side scripting refers to code that is executed by the browser, usually with JavaScript. Server-side Scripting refers to code that is executed by the server (before the content is sent to the user’s browser).
- A special editor such as an Integrated Development Environment (IDE) is required to build dynamic websites, along with strong technical skills in server-side programming language.
- Dynamic websites are easier to maintain, they encourage efficient data management, and you can expand them with extra functionality in future. (The downside is that they take longer to build and the initial costs are higher)
- A network protocol/communication protocol is a set of rules governing the communication and transfer of data between two nodes on the network.
A protocol specifies the format and meaning of messages exchanged between computers across a network.
Format is sometimes called syntax. Meaning is sometimes called semantics
Protocols are implemented by a protocol software framework that is part of OS e.g. OSI and TCP/IP
INTERNET APPLICATIONS
An Internet application does something for end users. It is generally not concerned with how data is actually transmitted between the hosts. Here are some distributed applications that require well-defined application level protocols:
· Sending and receiving email
· Searching and browsing information archives
· Copying files between computers
· Conducting financial transactions
· Navigating (in your car, smart scooter, smart bike, or other)
· Playing interactive games
· Video and music streaming
· Chat or voice communication (direct messaging, video conferencing) In addition, there are a number of network services such as:
· Name servers
· Configuration servers
· Mail gateways, transfer agents, relays
· File and print servers
All Internet applications work over the exact same transport layers. The Internet says nothing about how these application should work. It provides IP and TCP & UDP and that’s it. You can build anything on top of those.
· Applications pretty much just need to know:
i.) the IP address of the other party (what host the other party is running on—a network layer concept), and
ii.) The port number of the application running at the other end (because the other machine might be running multiple services—a transport layer concept).
It passes those two pieces of information to the transport layer to make the communication happen.
APPLICATION LAYER (HTTP, FTP, SMTP, ...)
TRANSPORT LAYER (TCP, UDP, ...)
NETWORK LAYER (IP)
LINK LAYER (Ethernet, Wifi, ...)
· IP Addresses for Hosts
A host address will be 32 bits for IPv4 and 128 bits for IPv6.
· Port Numbers
Once packets get to the right machine, they have to get to the right program running on that machine. The abstraction here is the port number. Port numbers are in the range 0..65535.
On the Internet, port numbers are partitioned as follows:
i.) Ports, assigned by the IETF Review or IESG Approval procedures described in RFC 8126.
ii.) 1024...49151 are the User Ports, assigned by IANA using the IETF Review process, the "IESG Approval" process, or the "Expert Review" process, as per RFC 6335.
iii.) 49152...65535 are the Dynamic Ports, which are unrestricted, do with them whatever you want.
· Sockets
WEB
A system of Internet Servers that support specially formatted documents in a markup language called HTML (HyperText Markup Language) that supports links to other documents, as well as graphics, audio, and video files.
This means you can jump from one document to another simply by clicking on hot spots.
The Web uses HTTP protocol to transmit data and share information. When you type a web address into your browser and hit enter:
· The browser goes to the DNS Server, and finds the real address of the server that the website lives on.
· The browser sends HTTP message to the server, asking it to send a copy of the website to the client. This message and all other data sent between the client and server, is sent across the internet using TCP/IP.
· If the server approves clients request, the server sends the client “200 OK” message and then starts sending the websites files to the browser as a series of packets
· The browser assembles the packets into a complete web age and displays it to you.
The Web is just one of the ways that information is shared over the Internet; others include email, instant messaging and File Transfer Protocol (FTP)
QUALITIES OF AN EFFECTIVE WEBSITE
A successful website meets clearly identified goals and provides compelling content that draws the audience to the site again and again. In addition, it is easy to navigate and is attractively designed. The most effective website reflects best practices across all of these elements:
a) Appearance; A site must be visually appealing, polished and professional. Your website may be the first, and only, impression a potential customer receives of who you are. An attractive site is far more likely to generate a positive impression and keep visitors on your site once they arrive. Guidelines:
- Good use of color: an appropriate color scheme will contain 2 or 3 primary colors that blend well and create a proper mood or tone for the organization. Don't overdo the color, as it can distract the written content.
- Text that is easily read: The most easily read combination is black text on a white background, but many other color combinations are acceptable if the contrast is within an
appropriate range. Use fonts that are easy to read and are found on most of today's computer
systems. Depending on your audience. Keep font size for paragraph text between 10 and 12 pts.
- Meaningful graphics: Graphics are important, as they lend visual variety and appeal to an
otherwise boring page of text. However, don't over-use them, and make sure that they add meaning or context to your written content. Don’t overload any one page with more than 3 or 4 images. Quality photography: A simple way to increase visual appeal is to use high quality photography. High quality product images are especially important for online retailers.
- Simplicity: Keep it simple and allow for adequate white space. Uncluttered layouts allow
viewers to focus on your message. Don't overload your site with overly complex design, animation, or other effects just to impress your viewers.
b) Content: Along with style, your site must have substance. Remember that the audience is looking for information that will help them make a decision, so the website should be informative and relevant. Use this opportunity to increase visitor confidence in your organization’s knowledge and competence. Guidelines:
- Short and organized copy: Clearly label topics and break your text up into small paragraphs. Don't bore your visitors with visually overwhelming text. You've got less than 10 seconds to hook your visitors, so grab their attention by being clear, concise and compelling.
- Update your content regularly: No one likes to read the same thing over and over again. Dead or static content will not bring visitors back to your site!
- Speak to your visitors: Use the word you as much as possible. Minimize the use of I, we and us.
- Consider a pro: Unless you’re an especially good writer, consider using a professional to write or edit your text content.
c) Functionality: Every component of your site should work quickly and correctly. Broken or poorly constructed components will leave your visitors frustrated and disillusioned with your organization. Across the spectrum, everything should work as expected, including hyperlinks, contact forms, site search, event registration, and so on. Error-free copy: Remember the exposure your website will get. Double-check your facts and figures, as you don't know who may be quoting you tomorrow. Nor do you want to be recognized or remembered for typos, incorrect grammar and punctuation, or misspellings. Spelling mistakes and bad grammar are as unforgivable on a website as they are in other organization materials.
d) Usability; A critical, but often overlooked component of a successful website is its degree of usability. Your site must be easy to read, navigate, and understandable. Some key usability elements include:
- Simplicity: The best way to keep visitors glued to your site is through valuable content, good organization and attractive design. Keep your site simple and well organized.
- Fast-loading pages: A page should load in 20 seconds or less via dial-up; at more than that, you'll lose more than half of your potential visitors.
- Minimal scroll: This is particularly important on the first page. Create links from the main page to read more about a particular topic. Even the Search Engines will reward you for this behaviour.
- Consistent layout: Site layout is extremely important for usability. Use a consistent layout and repeat certain elements throughout the site.
- Prominent, logical navigation: Place your menu items at the top of your site, or above the fold on either side. Limit your menu items to 10 or fewer. Remember, your visitors are in a hurry -- don't make them hunt for information.
- Descriptive link text: Usability testing shows that long link text makes it much easier for visitors to find their way around a site. Long, descriptive link text is favored by Search Engines, too. Back links are important to give users a sense of direction and to keep them from feeling lost. Use a site map, and breadcrumbs, if necessary.
- Cross-platform/browser compatibility: Different browsers often have different rules for displaying content. At a minimum, you should test your site in the latest versions of Internet Explorer, as well as Firefox and Safari.
- Screen Resolution: Screen resolution for the typical computer monitor continues to increase. Today, the average web surfer uses a resolution of 1024 x 768 pixels. However, you need to make sure that what looks good at this setting will also work nicely for other resolutions.
e) Search Engine Optimized (SEO): Some of the search engine optimization rules includes:
- Include plenty of written content in HTML format. Don't use Flash, JavaScript or image-only objects for your navigational items.
- offering quality content, using proper metadata and effective keywords, and having inbound links from relevant high-quality pages
- Use important keywords frequently and appropriately.
- Minimize the use of tables and use Cascading Style Sheets for layout and positioning; keep
your HTML code clutter-free.
- Leverage your links -- make them descriptive and use your keywords in the link text
Web Components:
Browser, Web Server, Hypermedia (Text, Images, Selectable pointers to other pages) Links, Document representation (HTML), Transfer protocol, etc
WEB PROGRAMMING
- Web Programming. Writing the necessary source code to create a website. Web development refers to building, creating and maintaining websites. It includes aspects such as
§ Web design
§ Web publishing\web programming and
§ Database management
o A web Designer only designs website interfaces using HTML, CSS, etc
o A web Developer maybe involved in designing a website, but also write a web script in languages such as PHP and ASP. Web Developer may help maintain and update a database used by dynamic website.
- Approaches to Web Programming
o Server-Side Programming
o Client-Side Programming
- Web Programming Languages
o Static technologies like HTML, CSS, JavaScript, XML
o Perl, PHP, Python, Ruby on Rails, Script
Two Divisions of Web Development:
· Front End Development (Client-Side Development). Constructing what a user sees when they load a web application-the content, design and how you interact with it. This is done using HTML, CSS and JavaScript codes
· Back-End Development (Server-side Development) controls what goes on behind the scenes of a web application. A backend often uses a database to generate a front-end. The Scripts are written using coding languages and frameworks like PHP, Ruby on Rails, ASP.NET, Perl, Java, Node.js, Python.
- Web Programming Interfaces
o Common Client Interface (CCI)
Inside a Browser. The main Controller:
i) Receives input from user and
ii) Invokes client and interpreter.
- Clients are built in the browser and can be HTTP, FTP, Email, etc. the client uses network to fetch items.
- Interpreter is used to display items.
o Common Gateway Interface (CGI)
A standard way for a web server to pass a Web user’s request to an application program and to receive data back to forward to the user
- Criteria for Choosing a Web Programming Language
o Efficiency of the language itself;
o Available platforms and frameworks;
o Community support;
o How difficult the language is to learn.