本文对 http 协议中一些基础知识的概括和总结:
WWW由三项技术组成
- HTML(超文本标记语言)
- HTTP(文档传输协议)
- URL(统一资源定位符)
URI与URL
-
URI(Uniform Resource Identifier):统一资源标志符
-
URL(Uniform Resource Loator):统一资源定位符
-
URI是用来标记某一互联网资源的,而URL表示网络资源的位置,也是一种URI,所以URL是URI的子集
-
URI的格式:
-
片段标志符:URL中任一带#的后面部分称为片段标志符,也称URL hash
- 片段标志符表示资源内的某一个位置,HTML文档里,浏览器会寻找该标志符对应的<a>标签
- 片段标志符只会被浏览器识别,不会发送给服务端
- 修改片段标志符不会重新加载页面,但会增加一条浏览器的历史记录
- javascript可以通过window.location.hash修改片段标志符
- Data URI:以data开始的协议头,常被用于作为小文件插入到其他文档之中,由四部分组成:
data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7
- 第一部分是 data: 协议头
- 第二部分是 MIME 类型,表示这串内容的展现方式
- 第三部分是编码设置,默认编码是 charset=US-ASCII
- 最后一部分为这个 Data URI 承载的内容,它可以是纯文本编写的内容,也可以是经过base64编码的内容
- Javascript URI:以javascript开始的伪协议
当浏览器装载了这样的URL时,它将执行这个URL中包含的javascript代码,并把最后一条javascript语句的字符串值作为新文档的内容显示出来
装载了这种URL时,浏览器仅执行其中的javascript代码,但由于没有作为新文档来显示的值,因此它并不改变当前显示的文档。
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
javascript:alert("hello world!")
- CGI(Common Gateway Interface):公公网关接口
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,
是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体
文档变成一个完整的新的交互式媒体
HTTP协议
Method详解
方法 | 说明 | 支持协议 |
---|---|---|
GET | 获取资源 | 1.0 , 1.1 |
POST | 传输实体文本 | 1.0,1.1 |
PUT | 传输文件 | 1.0 , 1.1 |
HEAD | 获取报文首部 | 1.0,1.1 |
DELETE | 删除资源 | 1.0 , 1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追寻路径 | 1.1 |
CONNECT | 以隧道协议连接代理 | 1.1 |
LINK | 建立与资源之间的连接 | 1.0 |
UNLINK | 断开连接 | 1.0 |
- GET方法:
GET 是最常用的方法。通常用于请求服务器发送某个资源
- HEAD方法:
HEAD方法与GET方法的行为很类似,但服务器在响应中只返回首部,不会返回实体的主体部分
- 在不获取资源的情况下了解资源的情况(比如,判断其类型);
- 通过查看响应中的状态码,看看某个对象是否存在;
- 通过查看首部,测试资源是否被修改了
- PUT方法:
用于更新资源的方法,使用PUT方法一般要遵循幂等性,所谓幂等性是指在多次调用同一方法时,资源的状态不变,不会受到其它接口的影响。所以使用PUT方法,每次更新要将资源的全部数据进行更新,全量覆盖。一般用于向服务器上的资源(例如文件)中存储数据
- POST方法:
用于更新资源的方法,使用POST不需要遵循幂等性,POST一般用于向服务器发送数据
- TRACE方法:
客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的 HTTP 请求。TRACE 方法允许客户端在最终将请求发送给服务器时,看看它变成了什么样子。
- TRACE 方法主要用于诊断,可以用来查看代理和其他应用程序对用户请求所产生效果
- TRACE 请求中不能带有实体的主体部分
- TRACE 响应的实体主体部分包含了响应服务器收到的请求的精确副本