Web design encompasses many different skills and disciplines in the production and
maintenance of websites. The different areas of web design include web graphic design;
interface design; authoring, including standardised code and proprietary software;
user experience design; and search engine optimization. Often many individuals will
work in teams covering different aspects of the design process, although some designers
will cover them all. The term web design is normally used to describe the design
process relating to the front-end (client side) design of a website including writing
mark up. Web design partially overlaps web engineering in the broader scope of web
development. Web designers are expected to have an awareness of usability and if
their role involves creating mark up then they are also expected to be up to date
with web accessibility guidelines.
Web development is a broad term for the work involved in developing a web site for
the Internet (World Wide Web) or an intranet (a private network). Web development
can range from developing the simplest static single page of plain text to the most
complex web-based internet applications, electronic businesses, and social network
services. A more comprehensive list of tasks to which web development commonly refers,
may include web design, web content development, client liaison, client-side/server-side
scripting, web server and network security configuration, and e-commerce development.
Among web professionals, "web development" usually refers to the main non-design
aspects of building web sites: writing markup and coding.
Practical web development
Basic
In practice, many web developers will have basic interdisciplinary skills / roles,
including:
- Graphic design / web design
- Information architecture and copywriting/copyediting with web usability, accessibility
and search engine optimization in mind
The above list is a simple website development hierarchy and can be extended to
include all client side and server side aspects. It is still important to remember
that web development is generally split up into client side coding, covering aspects
such as the layout and design, and server side coding, which covers the website's
functionality and back-end systems.
Advanced
Some more advanced web developers will also have these interdisciplinary skills
/ roles:
- GUI (Graphic User Interface) design
- Audio, Video and Animation processing and encoding (for web usage)
- Flash Capabilities (animation, audio, video, scripting)
- Web content management system Deployment and/or Content management infrastructure
design, development and integration
- Web applications development, integration and deployment
- Web server stress testing (how much traffic can a web server running a specific
application endure before collapsing)
- Web site security analysis & testing
- Web site code optimization (which is an important aspect of search engine optimization)
- Project management, QA and other aspects common to IT development
- Advanced customized admin panel (For end-users)
- Database integration with web applications
Security considerations
Web development takes into account many security considerations, such as data entry
error checking through forms, filtering output, and encryption.[2] Malicious practices
such as SQL injection can be executed by users with ill intent yet with only primitive
knowledge of web development as a whole. Scripts can be used to exploit websites
by granting unauthorized access to malicious users that try to collect information
such as email addresses, passwords and protected content like credit card numbers.
Some of this is dependent on the server environment (most commonly Apache or Microsoft
IIS) on which the scripting language, such as PHP, Ruby, Python, Perl or ASP is
running, and therefore is not necessarily down to the web developer themselves to
maintain. However, stringent testing of web applications before public release is
encouraged to prevent such exploits from occurring. If some contact form is provided
in a website it should include a captcha field in it which prevents computer programs
from automatically filling forms and also mail spamming.