2. HTTP协议基础

HTTP协议用于客户端和服务端之间的通信

应用HTTP协议时,必定是一段担任客户端,另一端担任服务器端

且HTTP协议可以明确区分哪端是客户端或服务器端

2.1 请求和响应

请求必定由客户端发出,肯定是先从客户端开始建立通信,服务端在没有接收到请求之前不会发送响应

image

客户端发送给HTTP服务器端请求报文的格式:

GET /index.html HTTP/1.1
Host: hackr.jp

..........

上面的报文:

请求方法(method):GET

请求URI: /index/html

协议版本:HTTP/1.1

可选的请求首部字段:Host: hackr.jp

内容实体

响应报文的构成:

image

2.2 HTTP协议

HTTP协议是stateless的协议(无状态),自身不对请求和响应之间的通信状态保存

image

为了保存状态:引入了Cookie技术

2.3 如何定位资源

HTTP使用URI定位资源

客户端请求访问资源发送请求时,URI要将请求URI包含在内

指定方式:image

如果是对服务器本身发起请求,则可以用*代替URI:

OPTIONS * HTTP/1.1

此例子为查询HTTP服务器端支持的HTTP方法种类

2.4 请求报文中的method

用于告知服务器:客户端的意图

image

其中LINK,UNLINK已经被HTTP/1.1废弃了

GET

用于来请求访问已经被URI识别的资源,如果请求的是文本,则原样返回,如果是类似CGI的程序,则返回执行后的输出结果

image

POST

用于传输实体的主体

GET也可以传输实体的主体,但是一般是使用POST(用于传输数据)

image

PUT

用于传输文件,但是不带验证机制,所以一般不用

要求在请求报文的主体中包含文件内容,保存到请求URI指定的位置

响应:请求执行成功但是没有数据返回

获取报文首部

image

用于确认URI的有效性以及资源更新的日期时间等

DELETE

删除文件,(不带验证机制所以一般也不用)

OPTIONS

查询支持的方法

image

TARCE

追踪路径

在Max-Forwards首部字段填入数值,经过一个服务器端就减1,减为0时,停止传输,最后接收到请求的服务端返回状态码200 OK的响应

image

CONNECT

image

2. 5 HTTP/1.1:持久连接

早期的HTTP通信:image

持久连接可以在建立一次TCP连接后进性多次请求和响应的交互,节省通信量

只要任意一端没有明确提出断开连接,就保持TCP连接状态

image

减少了TCP连接的重复建立和断开造成的额外开销,减轻服务器负载,减少开销时间,让HTTP请求响应更早结束

HTTP/1.1中所有连接默认都是持久连接

2.5.2 管线化

管线化使得发送请求后无需等待响应即可发送下一请求

image

通过在请求和响应报文中写入Cookie信息来控制客户端的状态

HTTP是无状态协议,不对之前发生过的请求和响应的状态做管理

Cookie通过在请求和响应报文中写入Cookie信息来控制客户端的状态

根据从服务器端发送的响应报文中的set-Cookie首部字段信息,通知客户端保存Cookie

,下一次客户端再次发送请求时(向该服务端),会自动在请求报文中写入Cookie值

服务器接收后会根据Cookie对比自己的记录

image

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值