第一章web技术基础
web技术的主要组成
IP地址 与 DS域名
IP地址
用二进制表示,长32位,即4个字节。便于使用经常写成十进制形式“10.0.0.1”
Ds域名
域名(Domain Name)用英文和数字代替数字型IP地址,域名系统有DNS服务器(Domain Name Server)来管理和解析。 例如www.bit.edu.cn
通常上一个IP地址对应一个DNS域名。但一个IP地址可以对应多个域名,如虚拟主机,在一台物理服务器上可建立多个DNS域名来使用不同Web应用;反之,一个域名也可以对应多个IP地址,例如Web负载均衡时,可使用不同IP地址的多台机器与一个DNS域名对应,作为一个web服务器使用。
URL 统一资源定位符
URL就是Internet上每一个网页或信息资源都具有唯一的名称字符。
<访问协议> :// <主机名(域名)> : <端口号> / <文件路径>
例: cms.bit.edu.cn:8080/login.aspx
-
访问协议和主机名是必须的,端口号和文件路径有时可以省略
-
80端口为web服务器默认端口,服务器侦听网页客户端请求的端口
-
8080端口用于浏览网页
第二章 HTTP协议基础
Http请求消息格式
无论是请求还是响应消息,都是有由“开始行”(start-line)或“状态行”(status-line)、“消息头”(headers)和“消息体”(message-body)构成。
HTTP请求方法
| 请求方法 | 主要作用 |
|---|---|
| GET | 获取资源 |
| POST | 追加提交数据 |
| OPTIONS | 查询服务器性能、可用选项 |
| HEAD | 响应消息报头,用于测试资源是否存在、修改、删除 |
| PUT | 存储一个资源 |
| DELETE | 删除资源 |
| TRACE | 请求回送收到的请求信息,用于测试或诊断 |
| CONNECT | 建立连接隧道,一般在代理中使用 |
HTTP响应状态码
| 响应状态码 | 类别与作用 |
|---|---|
| 1xx | 普通信息码。表示请求已经收到,服务器将继续处理 |
| 2xx | 操作成功码。表示请求已被成功接受、处理并予以响应 |
| 3xx | 重定向码。客户机需要进一步操作才能完成请求 |
| 4xx | 客户机错误码。客户机的请求有错误 |
| 5xx | 服务器错误码。服务器出现错误,无法处理请求 |
HTTP消息头
内容协商消息头
用于请求和响应消息,内容协商是指当资源存在多种表现形式(包括媒体类型、语言、字符集和编码等方面)时,从中选择对用户而言“最合适”的表现形式的过程。
常见的内容协商消息头字段主要有
- Accept 请求
- Accept-Charset 请求
- Accept-Encoding 请求
- Accept——Language 请求
- Allow (请求方法) 响应
缓存控制消息头
用于请求和响应消息。用于指定服务器和客户机的缓存策略。
PS 缓存(Cache)机制,把一些资源零时存放在访问速度较快的地方,例如客户机浏览器本地磁盘、网络速度较快的代理服务器等。当HTTP协议访问这些资源时,无需访问远端的实际服务器,而直接从缓存中获取,可以大大提高资源的访问速度。
- Cache-Control 设置客户机和服务器(包括中间可能存在的代理)都必须遵循的缓存策略
- no-cache 不允许缓存请求消息,而是必须向最终的服务器请求资源
- no-store 表明请求信息涉及隐私数据,不允许缓存请求消息的任何内容
- max-age 在n秒后缓存应该失效
- Pragma
- no-cache
- 收到此消息的程序无论是否拥有指定资源的缓存,都应该直接把该请求转发给最终服务器
实体描述消息头
用于请求和响应消息,在http请求消息和响应消息中,都可能包含消息体作为数据实体。用来描述消息头字段
-
Content-Type 用来描述数据实体的媒体类型
Content-Type: text/html;charset=utf-8 -
Content-Length 用来描述数据实体的大小
条件控制消息头
通常用于请求消息中,客户机通过设定条件触发服务器的动作,当条件判断成立(True)才会执行相关动作,减少不必要的开销
- If-Match
- 在客户机使用PUT或POST等请求方法执行更新资源的操作时,可是设定If-Match字段,防止误修改了其他资源的内容
- If-Modified-Slice
- 通常用于缓存中资源对象的更新,只有原始资源被修改之后才回去更新缓存中的内容,可以减少开销,提高效率
其他消息头
Host
Host: host:port
用请求消息,指明客户机请求的资源所在的主机及其端口号。Host是字段名,host是主机域名或IP地址,:port是可选项,表示主机提供HTTP服务的端口号,如果省略默认端口80
Location
Location: URI
用于响应消息,主要用于在3xx状态码的响应消息中指明重新定向的URI
Data
用于请求和响应消息,表示消息产生的时间
Last-Modified
用于请求和响应消息,描述消息体中数据实体最后被修改的时间
User-Agent
用于请求消息,描述了请求的客户机相关信息,包括客户机的名称、版本号、所运行的操作系统平台等。
Referer
用于请求字段,用于向服务器指明本次请求的URI是从哪个URI资源中获取的。 常用于资源链接关系的分析,另一个常见的用途是“防盗链”。
第三章 HTML语言基础
HTML表单
< form >
标记< form >是一个块内标记,有多个不同的属性,但只有属性action是必须的。属性action指定了Web服务器上的一个应用程序的url,当用户点击提交按钮时,将调用这个应用程序。
- method的取值通常为get和post,默认为get。
- get将表单中的数据按照variable=value的形式添加到action所指向的URL后面,并且两者用“?”连接,各个变量间用“&”连接
- post将表单中的数据放在form的数据体中,按照变量和值相对应的方式传递到action所指向的url �相对url
< input >
<input type="value" name="Name" >
控件的类型用type的值指定。除了重置和提交按钮外,所有列出控件还需要属性name,代表控件值的名称。复选框控件和单选框控件还需要属性value,用于初始化控件的值
| type值 | 描述 |
|---|---|
| text | 单行文本输入控件 |
| button | 可点击按钮 |
| checkbox | 复选框 |
| file | 供文件上传的按钮 |
| hidden | 隐藏的输入控件 |
| image | 图像形式提交按钮 |
| password | 密码控件,该控件中的字符被掩码 |
| radio | 单选按钮 |
| reset | 重制按钮。清除表单中所有数据 |
| submit | 提交按钮。把表单数据发送到服务器 |
< select >
菜单 每一条目用< option >指定
<form action="">
<select name="food">
<option selected="selected">milk</option>
<option>bread</option>
<option>eggs</option>
<option>cheese</option>
</select>
</form>
< textarea>
多行文本的区域。
表单提交过程
- 识别出所有“成功”的控件
- 在所有“成功”的控件的基础上构造表单数据集
- 按照FORM元素的enctype属性所给出的类型对表单数据集编码
- 使用FORM元素的method属性所指出的方法向服务器端应用程序(由FORM元素的action属性指定)发送编码后的表单数据集