Web基础
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
域名概述
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
-
早期使用Hosts文件解析域名
- 主机名称重复
- 主机维护困难
-
DNS (Domain Name System域名系统)
- 分布式
- 层次性
-
域名空间结构
- 根域 #根域“.”
- 顶级域 #net、edu、com、gov、mil、org…
- 组织域
- 国家/地区域名
-
二级域名
-
FQDN=主机名.DNS后缀
网页的概念
网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是超文本标记语言格式(标准通用标记语言的一个应用,文件扩展名为.html或.htm)。
- 网页
- 纯文本格式文件
- 编写语言为HTML
- 在用户的浏览器中被“翻译”成网页形式显示出来
- 网站
- 由一个一个页面构成的,是多个网页的结合体
- 主页
- 打开网站后出现的第一个网页称为网站主页 (或首页)
- 域名
- 浏览网页时输入的网址
- HTITP
- 用来传输网页的通信协议
- URL
- 是一种万维网寻址系统
- HTML
- 用来编写网页的超文本标记语言
- 超链接
- 超链接是将网站中不同网页链接起来的功能
- 发布
- 将制作好的网页上传到服务器供用户访问的过程
HTML概述
- HTML超文本标记语言
- Hyper Text Markup Language
- 网页的 "源码’
- 浏览器:“解释和执行” HTML源码的工具
- HTML文档的结构
- HTML网页
- 头部部分
- 标题部分
- 主体部分
- 网页内容,包括文本、图像等
- HTML网页
<html>
<head>
<title>第一个网页</title>
</head>
<body >
Hello World!
</body>
</html>
静态和动态网页
静态网页有时也被称为平面页。静态网页的网址形式通常为htm(超文本标记语言)结尾 ,还有就是以超文本标记语言(.htm、.html)、.shtml、.xml(可扩展标记语言)等为后缀的。在超文本标记语言格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等,这些“动态效果”只是视觉上的,静态网页面通常是超文本标记语言文档存储为文件在文件系统里头,并且可以通过HTTP访问网络服务器。
- 特点
- 静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”;(动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容。)
- 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件
- 静态网页的内容相对稳定,因此容易被搜索引擎检索;
- 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
- 静态网页的交互性较差,在功能方面有较大的限制。
- 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面。
- 减轻了服务器的负担,工作量减少,也就降低了数据库的成本。
- 优点
- 可以公开(即副本可以证明给任何人)。
- 托管没得任何特殊的要求。(不需要特殊的中间软件比如超文本预处理器、公共网关接口)
- 没得网络服务器或应用服务器,比如直接从CD-ROM(激光唱片-只读存储器)或USB闪存驱动器读取内容,可以通过网络浏览器直接访问。
- 网站更安全,HTML页面不会受Asp相关漏洞的影响;而且可以减少攻击,防SQL注入。数据库出错时,不影响网站正常访问。
- 不需要编译,所以速度快,节省服务器资源。
- 网址格式友好,搜索引擎容易识别。
- 缺点
- 内容是固定的,交互性差,内容更新维护复杂
- 没有自动化的工具,维护大量的静态页面文件是不现实的。
- 无法充分支持用户/客户的需求(外观选择,浏览器的支持,Cookie)。
从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以展示基本的文字和图片信息,但从网站开发、管理、维护的角度来看就有很大的差别。
早期的动态网页主要采用公用网关接口CGI(CommonGatewayInterface)技术。您可以使用不同的程序编写适合的CGI程序,如Visual Basic、Delphi或C/C++等。虽然CGI技术已经发展成熟而且功能强大,但由于编程困难、效率低下、修改复杂,所以有逐渐被新技术取代的趋势。
与静态网页相对应的,能与后台数据库进行交互,数据传递。也就是说,网页 URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形动态网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。
- 特征
- 动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;+
- 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
- 动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
- 动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索之中不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。
HTTP协议概述
HTTP 超文本传输协议 (HTTP-Hypertext transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。这个强调两个字,规则,什么是规则,就是说约束每个人的一种规范,不然的话每个人都按照自己的规则乱来,那么就没有办法统一来交互了。
HTTP 的主要特点
HTTP的主要特点,记住一句话就好了:基于请求和相应的无状态的连接。
- 支持客户端/服务器模式。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、 POST、 HEAD 等。每种方法规定了客户与服务器联系的类型不同。由于 HTTP协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
- 灵活: HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
- 无连接:无连接的含义是连接双方在完成交互后不维持连接状态,当客户端发送新的请求后则开启新的连接。
- 无状态: HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。
- 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 协议的会话方式
- 浏览器与服务器之间的通信过程要经历四个步骤:建立连接 -> 发出请求信息 ->回送响应信息 ->关闭连接
浏览器与 WEB 服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器WEB 服务器都要建立一次单独的连接。
浏览器到 WEB 服务器之间的所有通讯都是完全独立分开的请求和响应对。
HTTP 协议的组成部分
报文首部、空行(CR+LF)和报文主体
报文:用于HTTP协议交互的信息
请求行:包括请求的方法,URL和HTTP协议版本,Method Request-URI HTTP-Version CRLF。格式如下:
其中Method 表示请求方法
Request-URI 是一个统一资源标识符;
HTTP-Version 表示请求的HTTP 协议版本;
CRLF 表示回车和换行(除了作为结尾的CRLF 外,不允许出现单独的CR 或LF 字符)。
Request URL: http://127.0.0.1/mall/test.php
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:80
Referrer Policy: no-referrer-when-downgrade
状态行:包括响应结果的状态码,状态描述和HTTP版本
首部字段:包括请求和响应的各种条件和属性值(键值对)
HTTP方法
HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method)
每条HTTP请求报文都包含一个方法,告诉服务器要执行什么动作
- 获取一个Web页面
- 运行一个网关程序
- 删除一个文件等
HTTP协议有多种获得Web资源的方法
常用的方法:GET和POST
HTTP方法 | 描述 |
---|---|
GET | 请求获取Request-URI所标识的资源 |
PUT | 请求服务器存储一个资源,并用Request-URI作为其标识 |
DELETE | 请求服务器删除Request-URI所标识的资源 |
POST | 在Request-URI所标识的资源后附加新的数据 |
HEAD | 请求获取由Request-URI所标识的资源的响应消息报头 |
GET方法
GET方法:从指定的服务器上获得数据
- GET请求能被缓存
- GET请求会保存在浏览器的浏览纪录里
- GET请求有长度的限制
- 主要用于获取数据
- 查询的字符串会显示在URL中,不安全
POST方法
POST方法:提交数据给指定服务器处理
- POST请求不能被缓存
- POST请求不会保存在浏览器的浏览纪录里
- POST请求没有长度限制
- 查询的字符串不会显示在URL中,比较安全
HTTP状态码
当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态
通常正常的状态码为2xx,3xx(如200)
如果出现异常会返回4xx,5xx(如404)
状态码首位 | 已定义范围 | 分类 |
---|---|---|
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xX | 300-305 | 重定向 |
4xx | 400-415 | 客户端错误 |
5xx | 500-505 | 服务器错误 |
生产环境常见的HTTP状态码
消息 | 描述 |
---|---|
200 OK | 请求成功(其后是对GET和POST请求的应答文档) |
301 Moved Permanently | 请求的永久页面跳转 |
403 Forbidden | 禁止访问该页面 |
404 Not Found | 服务器无法找到被请求的页面 |
500 Internal Server Error | 内部服务器错误 |
502 Bad Gateway | 无效网关 |
503 Service Unavailable | 当前服务不可用 |
504 Gateway Timeout | 网关请求超时 |