《图解HTTP》前端基础系列一
积累知识细节。
—— ——上野宣
一、HTTP的一个简单示例
1.客户端发送请求
GET /index.htm HTTP/1.1
… …
方法 资源对象 协议版本
… …
注:一个完整的请求报文是由请求方法、请求URL、协议版本、可选字段和报文实体内容构成的。
2.服务器响应请求
HTTP/1.1 200 OK
… …
协议版本 状态码 解释内容
… …
注:一个完整的响应报文是由协议版本、状态码、解释状态码的短语、可选字段和报文实体内容构成的。
3.几个常用请求方法
GET 用于获取资源
POST 用来传输实体
HEAD 获取报文首部(确认URI的有效性,资源更新的时间)
PUT 用于传输文件 (缺少验证机制,出于安全性,一般不采用;可以配合REST‘表征状态转移’架构设计使用)
DELETE 删除文件,与PUT方法相反,同样也没有验证机制
=================以上方法均支持http1.0和1.1版本================
=================以下方法只支持http1.1版本====================
OPTIONS 查询资源支持哪些方法
例:
OPTIONS * HTTP/1.1
Host:(资源URL)
TRACE 追踪路径
例:
TRACE /HTTP/1.1
Host:(资源URL)
Max-Forwards:(路由跳数)
CONNECT 建立隧道通信,主要使用SSL和TLS等安全协议加密后在隧道传输
例:
CONNECT (代理服务器名):(端口号) (HTTP版本)
Host:(URL)
4.持久连接与管线化
HTTP/1.1 默认为持久连接。即通信时发生HTTP请求和响应时,如果任意一方没有发出中断TCP的请求,则TCP将持久保持连接而不被中断。显然,这种持久连接减少了大量的开销。同时使得大量请求的并发发送成为了可能,这就是管线化。
5.Cookie
HTTP本身是一种无状态协议,它不对先前的状态进行管理,设计的初衷是减少服务器CPU和内存的消耗。然而面对同一个用户的相同请求,每次都像是“新的请求”。为了解决这一矛盾,引入Cookie技术。
过程如下: