Chapter2 简单HTTP协议
- HTTP协议:::适用于客户端和服务器端之间的通信
- 使用HTTP协议通信的同一条线路上的两台计算机,必然一台是客户端,一台是服务器端
1 通过请求、响应通信
- HTTP协议:::必须从客户端开始建立通信,服务器端在没有接受到请求之前不会发送响应
- 请求报文
- 响应报文
- 请求报文
2 HTTP是无状态的协议
基于HTTP协议,每次有新的请求,都会产生新的响应。协议本身不会保留之前一切的请求或响应报文的信息。
3 请求URI定位资源
- GET(客户端从服务器“取”)
访问已经被URI识别的资源。 指定的资源经服务器解析后返回响应内容。若请求是文本,保持原样返回;若是CGI,返回执行后的结果 - POST
传输实体的主题(客户端“给”服务器) - PUT
传输文件
本身没有验证机制,一般不使用这个方法。若配合web的验证机制,或采用REST标准,可能开放(representational state transfer) - HEAD
拿报文首部,同GET,但无报文主体。用于确认URI有效性及资源更新日期 - DELETE
删除文件
与PUT相反。也需要配合其他验证机制 - OPTIONS
查询针对URI指定资源支持的方法 - TRACE(极少用)
追踪路径 - CONNECT
要求使用隧道协议连接代理
在与代理服务器通信时建立隧道,用SSL(secure socket layer安全套接字)、TLS(transport layer Security 传输层安全)将通信内容加密后经网络隧道传输。
4 持久连接
HTTP协议 早期,每个请求都要重新建立一起TCP连接
后来,HTTP1.1 默认使所有连接为“持久连接”(HTTP keep-alive),只要任意一方没有明确要断开 连接,则保持TCP连接状态(注意,保持的是TCP连接状态)
5 管道(pipelining)
可以同时并行发送多个请求,而不需要一个接一个等待响应
6 基于cookie的状态管理
HTTP无状态,不对之前发生的请求响应状态进行管理,无法根据之前的状态进行本次的请求处理。
cookie:::同时在请求、响应报文中写入Cookie信息控制客户端状态。
首先服务器发送的响应报文中带有Set-cookie首部字段,通知客户端保持Cookie,下次客户端再往该服务器发送请求时,自动在请求报文加入Cookie。
- 拓展
CGI即通用网关接口(Common Gateway Interface),是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器(tomcat)执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。