数据来源
超文本传输协议(HyperTextTransferProtocol·缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。
HTP( Hyper Text Transfer Protocol超京本传输协议) · 是一个基于请求与响应 · 无状态的,应用层的协议常基于TCP/IP协议传输数据 · 互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
版本 | 生产时间 | 内容 | 发展现状 |
HTTP/0.9 | 1991年 | 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 | 没有作为正式的标准 |
HTTP/1.0 | 1996年 | 传输内容格式不限制,增加PUT、PATCH、HEAD、OPTIONS、DELETE命令 | 正式作为标准 |
HTTP/1.1 | 1997年 | 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 | 2015年前使用最广泛 |
HTTP/2 | 2015年 | 多路复用、服务器推送、头信息压缩、二进制协议等 | 逐渐盖市场 |
客户端通过TCP三次握手与服务器建立连接.
TCP建立连接成功后,向服务器发送HTTP请求。
服务器收到HTTP请求后,向客户端发送http响向应.
客户端通过TCP四次断开 . 与服务器断开TCP连接
在HTTP 0.9 和 1.0 中 ·TCP连线在每一次请求/回应对之后关闭闭。
在HTTP 1.1中 . 引入了保持连线的机制 · 一个连接可以重复在多个请求/回应使用.
持续连线的方式可大大减少等待时间,因为在发出第一个请求后,双方不需要重新运行TCP握手程序
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立
目的:是建立可靠的通信通道,说到通信,简单来说就是数据的发生与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是否正常
URL(统一资源定位符):我们常说的网址 · 包含了用于查找资源的足够的信息 · 而一个完整的URL包含下面几部分;
URl(Universal Resource Identifier统一资源标志符)· 用来标识抽象或物理资源的一个紧凑字符串。
HTTP 是基于客户端/服务端(C/S)的架构模型 · 通过一个可靠的链接来交换信息 · 是一个无状态的请求/响应协议。
HTTP 使用统一资源标识符(UniformResourceIdentifiers,URI)来传输数据和建立连接
URI和URL的区别:URL是URI的一个子集
HTTP请求报文:web客户端向服务器发送的请求
HTTP请求由四个部分组成:
Method Request-URL HTTP-Version CRLF
Header:Header Value CRLF
允许客户端传递关于自身的信息和希望的响应形式。
在HTTP/1.1协议中 · 所有的请求头 · 除HoSt外 · 都是可选
表示请求头结束 · 请求正文(请求体)开始
GET方法:提交数据时 · 数据参数会做为URL的一部分放在文件路径后面发送给服务器 · 被称为查询字符串
http://www.hetianlab.com?username=12345%40qq.com&password=2f7402f...a592b&validateCode=&rtnjson=true
发送的数据在请求体中
username=12345%40qq com& password=2f7402f..a592b&validate Code=&rtnjson=true
HTTP响应报文:在接收和解释请求消息后 . 服务器返回一个HTTP响应消息
HTTP响应也由四个部分组成·分别是:
HTTP-Version Status-Code Reason-Phrase CRLF
状态代码有三位数字组成 · 第一个数字定义了响应的类别 · 且有五种可能取值:
响应报头允许服务器传递不能放在状态行中的附加响应信息 · 以及关于服务器的信息和对 Request-URI所标识的资源进行下一步访问的信息
表示请求头结束 · 请求正文(请求体)开始
服务器返回的资源内容
{"result". "success", "message":null"}
POST:在 Request-URI所标识的资源后附加新的数据
用于向指定资源发送数据 · 指定的资源会对数据进行处理 · 然后将处理结果返回给客户端 · 一般用于表单提交文件上传
HEAD:请求获取由 Request-URI所标识的资源的响应消息报头首部 · 不会返回报文主体
查询资源支持的方法
PUT:请求服务器存储一个资源,并用 Request-REI 作为其标识
服务器会将请求主体的内容保存到RL指定的资源位置 · 包含两种情况:
1. URL指定的资源不存在 · 服务器新建一个文件 · 将请求主体中的内容保存到新建的文件里 ·响应码为201
2. URL指定的资源存在 · 服务器会重置文件内容 · 用请求主体中的内容覆盖原文件内容 · 响应码为200或204
DELETE:请求服务器删除 Request-URI所标识的资源
路径追踩 · 请求服务器回送收到的请求信息 · 主要用于测试或诊断发送的请求是否在客户端与服务端之间传送时被网、防火墙丶代理更改。
个人见解:在实际使用中GET和POST是最常用的,这两个能实现其他所有的功能,其他方法极少使用
全称: Hyper Text Transfer Protocol over Secure Socket Layer · 就是HTTP的安全版 · 再通俗点就是身披SSL外壳的HTTP
HTTPS = HTTP + SSL/TLS
HTTPS是一种通过计算机网络进行安全通信的传输协议 · 经由HTTP进行通信 · 利用SSL/TLS建立全信道 · 加密数据包 · HTTPS使用的主要目的是提供对网站服务器的身份认证 · 同时保护交换数据的隐私与完整性。
HTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。并且https协议需要到ca申请证书。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。