HTTP协议介绍
简介
- HTTP协议Hyper Text Transfer Protocol(超文本传输协议),用于从万维网服务器传输超文本到本地浏览器的传 送协议。
- HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件,图片文件, 查询结果等)的应用层协议。
HTTP协议工作于C/S或C/B架构。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 Web服务器根据接收到的请求后,向客户端发送响应信息。
URL
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
- URL是一种特殊类型的URI,全称是UniformResourceLocator(统一资源定位符),是互联网上用来标识某一处资源的 地址。
举例:http://www.runoob.com/http/http‐tutorial.html http : 协议部分 www.runoob.com:域名部分或IP地址,[端口] /http/: 虚拟目录部分 http‐tutorial.html:文件
工作流程
针对Server端来说:
格式:请求行 请求头部 空行 请求数据 四个部分组成
GET:请求指定的页面信息
- POST:向指定资源提交数据进行处理(表单)
- Head: 类似GET请求,但是返回内容仅仅头部信息
- PUT:从客户端向服务端传送的数据取代指定的文本内容
- DELETE: 删除指定的页面信息
- CONNECT: 预留给能够将连接改成管道方式的代理服务器
- OPTIONS:允许客户端查看服务器性能
-
状态码
1xx:指示信息-表示请求已经接受,继续处理
- 2xx:成功-表示请求已经被成功接受,理解,并处理
- 3xx:重定向-要完成请求必须进行更进一步的操作
- 4xx:客户端错误 - 请求的语法存放错误
- 5xx:服务端错误 - 服务端不能够处理请求
- 200: OK
- 301: 永久重定向
- 302: 临时重定向
- 304: 请求被重定向到本地缓存
- 400: 客户端语法存在错误
- 401: 客户端请求没有授权
- 403: 客户端授权错误
- 404: 客户端请求的资源在服务端不存在
- 500: 服务端内部错误
- 502: gateway bad 服务端不能处理请求
- 503: servcie .. : 客户端请求无法处理
504: gateway tiemout 服务端没能接收到请求
HTTP协议版本
HTTP/0.9:仅支持GET方法,仅能访问HTML格式的资源
- HTTP/1.0:增加POST和HEAD方法,MIME支持多种数据格式,开始支持Cache
- HTTP/1.1:支持持久连接(保持连接),一个TCP连接允许多个请求,新增PUT、PATCH、DELETE等方法
- HTTP/2.0:性能大幅提升,新的二进制格式,多路复用,header压缩,服务端推送。
一个事务没有记忆能力;浏览器发送一个请求给服务端,服务端处理完之后返回响应消息;同一个浏览器再发送一个请求给服务端,
服务端依然能够处理请求并返回响应消息,但是服务端不知道是同一个浏览器发送的
针对“无状态”的解决方案: Cookie Session (会话保持技术)
- 区别:
1. Cookie存储在浏览器中而Session是存储在服务器()
2. seesion能够存储更多的数据,安全性更好
3. Cookie减轻服务端压力,信息不安全
Session技术其实是依赖于cookie技术
name=zhsang password=123456 -> 浏览器上
seesionID=xxxxx {name=zhsang,password=123456} -> 服务端上
浏览器上:seesionID=xxxxx