概述
最简单的的资源是web服务器文件系统中的静态文件。当然可以上动态,但要经过网关?(不确定) 见图:
URI(uniform Resource Identifier) 同一资源标识符:类比邮政地址
URI可以有两种格式 1.URL(同一资源定位符) 2.URN
(1) URL:分为三个部分,1.协议(http://)2.地址(www.baidu.com)3.特定资源:/1.pic
(2) URN:开发阶段
常见的HTTP方法:
协议格式
注:一个“web页面”通常不是单个资源,而是一组资源的集合。
web结构组件
(1)代理:
(2)缓存或称代理缓存:
(3)网关,网关是一种特殊的服务器,作为其他服务器的中间实体使用:
(4)隧道,隧道建立后,会在两条连接之间对原始数据进行盲转发:
(5)Agent代理,web浏览器就是一个agent代理:
URL和资源
URL组成
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag> ---(1)
注:上图是一个常见URL组成。下面是(1)各个组件的说明:
分组件注意点:
(1)http://大小写不敏感
(2)URL上添加附件信息的情况:ftp://prep.ai.mit.edu/pub/gnu;type=d;graphics=true
(3)包含查询字符串的情况:http://www.joes.../..check.cgi?item=1224
(4)片段:http://www.joes..../tools.html#drills,注意web浏览器并不会将片段发送给服务器:
三种URL
这边解释了将相对URL转为绝对URL的算法:
(1)有一段HTML代码片段:
(2)根据算法
相应的具体描述:
URL使用的编码机制
URL为了适应不同的编码,提供转义功能:
注:保留部分用于特殊符号,如:%,#...
常见的web方案:
(1)http:
http://www.baidu.com,默认端口80
(2)https:
https://bing.com,默认端口443 (同http结构一致,区别在于提供端到端的加密机制)
(3)mailto:E-main地址
mach@163.com
(4)ftp:
ftp://<user>:<password>@<host>:<port>/<path>;<params>
(5)rtsp,rtspu:Real Time Streaming Protocol
rtsp/rtspu://<user>:<password>@<host>:<port>/<path>
(6)file:
file://Office/policies/fun.doc
(7)news:注意,它们是位置无关的,意思是可以不依赖于一台的源服务器
news:rec.arts.startrek
(8)telent:
telnet://<user>:<password>@<host>:<port>/ 默认端口23
HTTP报文
一个完整的简单的HTTP事物:
常见的HTTP方法:
常见方法解析:
(1)Get:安全方法(不对服务端的结果产生影响(特指一般)如果程序员想改变点什么...)
(2)Head:安全方法,使用Head很重要的一点就是可以获取文件的长度
(3)Put:上传文件
(4)Post:协议交互一般使用Post
(5)Trace:主要用于诊断
(6)Options:询问当前服务器支持的类型
(7)Delete: 删除,注意服务器可以不执行此操作
(8)扩展方法:暂略
状态码:
注:上图为状态码的简单分类
部分状态码介绍:
(1)100 Continue状态码:
发生情况:客户端需要发送主体到服务器上,但不清楚服务器是否能解析该主体,所以客户端
选择先发送一个协议给服务端,服务端如果接收到相应协议,就应该Respone给客户端。
(2)关于300~399重定向状态码:
报文首部(头)
一、通用首部
(1)信息:
(2)缓存:
二、请求首部
(1)信息:
(2)Accept:
(3)条件请求:
(4)安全请求:
(4)代理请求:
三、响应首部
(1)信息性:
(2)协商:
(3)安全:
四、实体首部
(1)信息:
(2)内容:
(3)缓存: