(GET/POST..) (/index) HTTP/1.1
协议 资源地址 http版本
(HOST: tzwlink.xyz)
域名
(userName=gre&age=21)
请求内容
例如
GET /blogart HTTP/1.1
HOST: tzwlink.xyz
Connection: keep-alive
name=great&age=21
(HTTP/1.1) (200) (OK)
http版本 状态码 状态码解释原因
(Date: Tue, 10 Jul 2020 15:37:34 GMT)
创建响应的时间
(Content-Length: 600)
字节大小
(Content-Type: text/html)
(<html\>...)
响应内容
例如
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2020 15:37:34 GMT
Content-Length: 600
Content-Type: text/html
<html\>....</html\>
指定服务器并发送请求,一般返回文本内容
向服务器发送数据,服务器返回处理结果
上传文本内容,类似 FTP 协议上传文件,但是不太安全,一般不使用
用来获取服务器的头部相关信息、资源更新时间等,服务器只返回头部信息,不返回主体内容
用来请求服务器删除某项资源
用来查询服务器支持哪些方法
OPTIONS \* HTTP/1.1
HOST: tzwlink.xyz
//响应
HTTP/1.1 200 OK
Allow: GET,POST,PUT,HEAD
使用隧道连接,比如 SSL 安全套层
原本的 http 中,一旦传输完成报文主体,那么 tcp 就断了,但是如果 html 文档里还有图片、数据也需要请求时,还要在建立 tcp 连接再次请求。这样的话太浪费,我们完全可以让 tcp 继续连接,把文档中需要请求的地方请求完,然后如果一段时间都没请求时在断开。
所以引入了 Content: keep-alive,要求就是只要任何一方不提出断开,那么就一直连接
以往,请求需要得到回应后才能继续下一条请求,这样其实一点也不高效。因为服务器端是可以同时处理大量请求的。
管线化技术实现了可以同时发送多个请求,然后依次响应,无需等待每一次的响应结束。这样一来 web 页面效率大大提高
以往的 http 传输完成后并不会保存信息,通过 Cookie 会在初次请求之后保存部分信息(比如用户登录信息),然后再次请求时可以将 Cookie 加入请求报文中
前面大概讲过
例子
某些时候文件内容较多可以采用编码压缩的方式,但是解压时会增大服务器负担
当文件较大时,可以分割为多个部分分时传送,让浏览器一块一块的显示页面
当某个内容下载到一半失败时,重新下载往往从头开始,所以引入可以指定范围,比如重新加载时可以从后面一半开始。返回成功状态码 206
GET /great.png HTTP/1.1
HOST: www.tzwlink.xyz
Range: bytes = 5000\-10000
//响应
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2020 15:37:34 GMT
Content-Range: bytes 5000\-10000/10000
Content-Length: 5000
Content-Type: image/jpeg
比如某个页面初次打开返回 200 OK ,因为第一次需要的数据需要服务端查询数据库生成,这时客服端会在缓存文件中保存 Last Modified;在相同的第二次请求发生时,客服端会在请求中加入 If Modified Since,服务端收到后会根据更新时间判断是该重新查询?返回 200,还是就让客服端用之前的缓存?返回 304
动态页面一般不会保存这些信息,所以不主动添加的话那么每次请求都是 200,如果要做缓存加速就需要添加 Last Modified
https-http-加密-认证-完整性保护 "https=http+加密+认证+完整性保护")https=http+加密+认证+完整性保护
原始的http协议内容都是以明文发送,容易被盗取,并且通信时无法确认收到的信息是否完整,或者被篡改。也不知道通信双方是否真实;由此引入 https,事实上是在 http 上做了一些处理。
通过与 SSL 层合用,达到安全通信的效果。SSL 会先建立安全隧道才会通信的
https 在 tcp 建立的基础上,还需要建立 SSL 连接,之后进行普通的经过加密的 http 请求
加密解密都需要秘钥,一般发送方使用对方提供的公共秘钥进行加密。接受方接受到了之后又使用自己的私有密钥进行解密
图片来自图解HTTP
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有