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 (or just 'web apps')
electronic businesses, and
social network services. A more comprehensive list of tasks to which web development commonly refers, may include
web engineering,
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. Most recently Web development has come to mean the creation of
content management systems
or CMS. These CMS can be made from scratch, proprietary or open source.
In broad terms the CMS acts as middleware between the database and the
user through the browser. A principle benefit of a CMS is that it allows
non-technical people to make changes to their web site without having
technical knowledge.
Basic
In practice, many
web developers will have basic
interdisciplinary skills / roles, including:
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.
Testing
Testing is the process of evaluating a system or its component(s)
with the intent to find whether it satisfies the specified requirements
or not. Testing is executing a system in order to identify any gaps,
errors, or missing requirements contrary to the actual requirements. The
extent of testing varies greatly between organizations, developers, and
individual sites or applications.
Security considerations
Web development
takes into account many security considerations, such as data entry
error checking through forms, filtering output, and encryption.
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 on which the scripting language, such as
ASP,
JSP,
PHP,
Python,
Perl or
Ruby
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.
Keeping a web server safe from intrusion is often called
Server Port Hardening.
Many technologies come into play to keep information on the internet
safe when it is transmitted from one location to another. For instance
TLS certificates (or "SSL certificates") are issued by certificate authorities to help prevent
internet fraud. Many developers often employ different forms of
encryption when transmitting and storing sensitive information. A basic understanding of
information technology security concerns is often part of a web developer's knowledge.
Because new security holes are found in web applications even after
testing and launch, security patch updates are frequent for widely used
applications. It is often the job of web developers to keep applications
up to date as security patches are released and new security concerns
are discovered.