URL与资源:
大多数URL方案的URL语法都建立在这个由9部分构成的通用格式上。
- 方案: 访问服务器以获取资源要使用哪种协议
- 用户: 某些方案访问资源时需要的用户名
- 密码: 用户名后面可能包含的密码,中间由 :分割
- 主机: 资源服务器的主机名或IP地址
- 端口: 资源服务器正在监听的端口,HTTP默认为80
- 路径: 服务器上资源的本地名
- 参数: 某些方案会用这个组件来指定输入参数
- 查询: 某些方案会用这个组件来传递参数以激活应用程序
- 片段: 一小片或一部分资源的名字
URL是可移植的、可读的、完整的、在传输过程中不能丢失信息。编码机制:用来在URL中表示各种不安全的字符,包含一个 % 。
HTTP报文:
HTTP报文是在HTTP应用程序之间发送的数据块,HTTP使用术语流入和流出来描述事物处理。
- 1.起始行:start line
- 2.首部块:header
- 3.可选的数据主体:body
HTTP报文各部分简要描述:
方法(Method): 客户端希望服务器对资源执行的操作。 例:GET、HEADER、POST
请求URL(Request-URL) 命名了所请求资源,或者URL路径组件的完整URL。
版本(Version) 报文所使用的HTTP版本
状态码(Status-Code) 描述了请求过程中所发生的情况
原因短语(Reason-Phrase) 数字状态码的可读版本
首部(Header) 可以有零个或多个首部
主体部分(Entity-Body) 实体的主体部分包含一个由任意数据组成的数据块
HTTP报文首部:
- 通用首部 : 客户端 / 服务器
- 请求首部 : 请求报文特有的
- 响应首部 : 响应报文有自己的响应首部集,为客户端提供了一些额外信息
- 实体首部 : 用于应对实体主体部分的首部。比如:用实体首部来说明实体主题部分数据类型
- 扩展首部 : 非标准首部,由应用程序开发者创建,但还未添加到HTTP规范中去
- Appept首部 : 为客户端提供了一种将其喜好和能力告知服务器的方式,包括它们想要什么,可以使用什么以及它们不想要什么。Appept会使连接的两端都受益,客户端会得到它们想要的内容,而服务器则不会浪费时间和带宽来发送客户端不想要的东西。
- 条件请求首部 : 有时客户端希望为请求加上某些限制
- 安全请求首部 : HTTP本身就支持一种简单的机制,可以对请求进行质询 / 响应认证
- 实体缓存首部 : 通用的缓存首部说明了如何或什么时候进行缓存,实体的缓存首部提供了与被缓存实体有关的信息