WEB基础与HTTP协议
一、域名
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
1.DNS域名系统
DNS系统由三部分的组成
域名空间:标识一组主机并提供它们的有关信息的树型结构
域名服务器:保持和维护域名空间数据的程序、响应解析器的请求
解析器(客户端):向域名服务器发出请求的设备
2.域名空间结构
根域
顶级域:组织域
国家/地区域名·
二级域名
FQDN=主机名.DNS后缀
二、网页
网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是超文本标记语言格式(标准通用标记语言的一个应用,文件扩展名为.html或.htm)。网页通常用图像档来提供图画。网页要通过网页浏览器来阅读。
1.网页的分类
静态页
静态网页,其内容是预先确定的,并存储在Web服务器或者本地计算机/服务器之上。
特点:
制作速度快,成本低。
模板一旦确定下来,不容易修改,更新比较费时费事。
常用于制作一些固定板式的页面。
通常用于文本和图像组成,常用于子页面的内容介绍。
对服务器性能要求较低,但对存储压力相对较大。
动态页
动态网页,是取决于由用户提供的参数,并根据存储在数据库中的网站上的数据中创建的页面。
通俗地讲,静态页是照片,每个人看都是一样的,而动态页则是镜子,不同的人(不同的参数)看都不相同。
2.HTML概述
HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
特点:
简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。
可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。
平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。
通用性:另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。
HTML整体结构
HTML网页:
头部部分
标题部分
主体部分
网页部分,包括文本,图像等
<html> 开始
<head> 头部
<title>我的第一个网页</title>标题(搜索的关键词)
</head>
<body> Hello World!</body>主体(正文,内容)
</html> 结束
- HTML head 元素:
编译要求
在编辑超文本标记语言文件和使用有关标记符时有一些约定或默认的要求。
文本标记语言源程序的文件扩展名默认使用htm(磁盘操作系统DOS限制的外语缩写为扩展名)或html(外语缩写为扩展名),以便于操作系统或程序辨认,除自定义的汉字扩展名。在使用文本编辑器时,注意修改扩展名。而常用的图像文件的扩展名为gif和jpg。
超文本标记语言源程序为文本文件,其列宽可不受限制,即多个标记可写成一行,甚至整个文件可写成一行;若写成多行,浏览器一般忽略文件中的回车符(标记指定除外);对文件中的空格通常也不按源程序中的效果显示。完整的空格可使用特殊符号(实体符)“ (注意此字母必须小写,方可空格)”表示非换行空格;表示文件路径时使用符号“/”分隔,文件名及路径描述可用双引号也可不用引号括起。
标记符中的标记元素用尖括号括起来,带斜杠的元素表示该标记说明结束;大多数标记符必须成对使用,以表示作用的起始和结束;标记元素忽略大小写,即其作用相同,但完整的空格可使用特殊符号“ (注意此字母必须小写,方可空格)”;许多标记元素具有属性说明,可用参数对元素作进一步的限定,多个参数或属性项说明次序不限,其间用空格分隔即可;一个标记元素的内容可以写成多行。
标记符号,包括尖括号、标记元素、属性项等必须使用半角的西文字符,而不能使用全角字符。
HTML注释由"
“结束结束,例如
。注释内容可插入文本中任何位置。任何标记若在其最前插入惊叹号,即被标识为注释,不予显示。
三、HTTP协议
HTTP协议是基于B/S架构进行通信的,而HTTP协议的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、InternetExplorer、Google chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这样客户端浏览器和Web服务器之间就可以通过HTTP协议进行通信了。
1.http方法
- GET
GET是最常用的方法,通常用于请求服务器发送某个资源。HTTP/1.1 要求服务器实现该方法。下图为客户端用GET方法发起一次HTTP请求。
- HEAD
HEAD方法和GET方法的行为很类似,但是服务器在响应中只返回首部,不会返回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查。
必须确保返回的首部与GET请求所返回的首部完全相同,遵循HTTP/1.1规范,就必须实现HEAD方法。下图为HEAD方法的实际用法:
- PUT
与GET从服务器读取文档想法,PUT方法会向服务器写入文档。PUT方法的语义就是让服务器用请求的主体部分来创建一个由所请求的URL命名的新闻的,或者替换已存在的URL。具体使用方法如下:
因为PUT允许用户对内容进行修改,所以很多Web服务器都要求在执行PUT之前,用密码登录。
-
POST
POST方法期初是用来向服务器输入数据的,实际上,通常会用它来支持HTML的表单。表单中填好的数据通常会被送给服务器,然后由服务器将其发送到它要去的地方。
下图为POST方法发起HTTP请求发送表单数据的示例图:
- DELETE
DELETE方法所做的事情就是请服务器删除请求URL所指定的资源。但客户端应用程序无法保证删除操作一定会被执行。因为HTTP规范允许服务器在不通知客户端的情况下撤销请求。
DELETE方法实例如下:
2.HHTP状态码
状态码首位 | 已定义范围 | 分类 |
---|---|---|
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客户端错误 |
5xx | 500-505 | 服务器错误 |
- 生产环境常见的HTTP状态码
消息 | 描述 |
---|---|
200 OK | 请求成功 |
301 Moved Permanently | 请求的永久页面跳转 |
403 Forbidden | 禁止访问该页面 |
404 Not Found | 服务器无法找到被请求的页面 |
500 Internal Server Error | 内部服务错误 |
502 Bad Gateway | 无效网关 |
503 Service Unavailable | 当前服务不可用 |
504 Gateway Timeout | 网关请求超时 |
3.HTTP请求消息报文格式
HTTP请求消息报文格式包括:请求行、请求头、请求体
1 Get /mattmarg/ HTTP/1.1请求目录
2 User-Agent: Mozilla/2.0 (Macintosh; l; PPC)浏览器标识
3 Accept: text/html; /
4 Cookie: name = value
5 Referer: http://www.XXX.com/a.html