HTTP协议详解

您所在的位置:网站首页 起始电位意味着什么 HTTP协议详解

HTTP协议详解

2023-03-16 09:49| 来源: 网络整理| 查看: 265

文章目录 复杂的网络HTTP概述HTTP报文格式请求行报文格式![在这里插入图片描述](https://img-blog.csdnimg.cn/9f812d1533c84601b1b1b51a64356f19.png) 响应行报文格式HTTP头字段头字段注意事项常用字头段 HTTP请求的完整过程TCP协议(Transmission Control Protocol)TCP连接管理字节流的协议数据可靠性传输 HTTPS协议SSL/TLS摘要算法对称密钥加密算法

复杂的网络

在这里插入图片描述

HTTP概述

又叫超文本传输协议(HyperText Transfer Prorocol, HTTP),一种无状态的,以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。 HTTP是一种能够获得网络资源的protocol(通讯协议)。它是在Web上进行数据交换的基础,是一种client-server协议,也就是说。 在这里插入图片描述 客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互,由像浏览器这样的客户端发出的消息叫做请求(request),被服务端响应的消息叫做响应(response) HTTP 被设计于 20 世纪 90 年代初期,是一种可扩展的协议。它是应用层的协议,通过 TCP,或者是 TLS——加密的 TCP 连接来发送,理论上任何可靠的传输协议都可以使用。因为其良好的扩展性,时至今日,它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如 HTML 表单这样的信息。HTTP 还可以根据网页需求,仅获取部分 Web 文档内容更新网页。

在这里插入图片描述

HTTP报文格式

注意:换行和空格是必须要有的 HTTP协议的请求报文和响应报文的结构基本相同,由三大部分组成。

起始行(start line):描述请求或响应的基本信息头部字段集合(header):使用key-value形式更详细地说明报文消息正文(entity):实际传输地数据,他不一定是纯文本,可以是图片,视频等二进制数据 在这里插入图片描述 请求行报文格式在这里插入图片描述 请求方法:如GET/HEAD/PUT/POST,表示对资源地操作请求目标:通常是一个URL,标记了请求方法腰操作地资源版本号:表示报文使用地HTTP协议版本 响应行报文格式

在这里插入图片描述

版本号:表示报文使用地HTTP协议版本状态码:一个三位数,用代码的形式表示处理的结果,比如200是成功,500是服务器错误原因:作为数字状态码补充,是更详细的解释文字,帮助人理解原因。 HTTP头字段

头部字段是key-value的形式,key和value之间用“:”分隔,最后用CPLF换行表示字段结束。比如前后分离时经常遇到的要与后端协商传输数据的类型“Content-type:application/json”,这里key就是“Content-type”,value就是“application/json”。HTTP头字段非常灵活,不仅可以使用标准里的Hoset、Connection等已有头,也可以任意添加自定义头,这就给HTTP协议带来无限的扩展可能。

头字段注意事项 字段名不区分大小写,字段名里不允许出现空格,可以使用连字符“-”但是不能使用下划线“_”(有的服务器不会解析带下划线的头字段)。字段名后面必须紧接着“:”不能有空格,而":"后的字段值前可以有多个空格字段的顺序是没有意义的,可以任意排列不影响语义;字段原则上不能重复,除非这个字段本身的语义允许,例如Set-Cookie。 常用字头段

HTTP协议中有非常多的头字段,但是基本上可以分为四大类:

请求字段:请求中的头字段;如Host,Referer。响应字段:响应头中的头字段,如 Serve,Date(这个也不一定也可能出现在请求上面);通用字段:在请求头和响应头里都可以出现,如Content-type,Connection; HTTP请求的完整过程

当用户在浏览器输入网址回车后,网络协议都做了哪些工作呢? 1.首先干活的是浏览器应用程序,它要解析出URL中的域名 2.根据域名获取对应的IP地址,首先从浏览器缓存中查看,如下可以查看浏览器中域名对应的IP的解析。 在这里插入图片描述 如果没有则从本机域名解析文件hosts(/etc/hosts)中查看,还没有则从LDNS(Localdnsserver)、Rootserver域名服务器、国际顶级域名服务商的DNS的层层解析 3.拿到IP地址后,浏览器就可以发起与服务器的三次握手 4.握手建立后,就开始组装http请求报文,发送报文 5.服务器收到请求报文之后开始请求报文解析,生成响应数据,发送响应数据 6.浏览器收到响应后,开始渲染页面

TCP协议(Transmission Control Protocol)

面向连接的,可靠的,基于字节流的传输层通信协议 特点:

基于连接的:数据传输之前需要建立连接全双工的:双相传输字节流:不限制数据大小,打包成报文段,保证有序接收,重复报文自动丢弃流量缓冲:解决双方处理能力的不匹配可靠的传输服务:保证可达,丢包时通过重发机制实现可靠性拥塞控制:防止网络出现恶性拥塞 TCP连接管理

1.TCP连接:四元组[源地址,原端口,目的地址,目的端口] 2.确立连接:TCP三次握手 a.同步通信双方初始序列号(ISN, initial sequence number) b.协商TCP通信参数(MSS,窗口信息,指定校验和算法) TCP报文 在这里插入图片描述

如何进行握手? 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 A:发送FIN数据包,代表A不再发送数据 B:收到请求,开始应答,避免了A重新发送FIN重试(应答机制) B:处理完数据之后关闭,关闭连接,及发送FIN请求 等待2MSL后释放连接 1.防止报文丢失,导致B重新发送FIN 2.防止滞留在网络中的报文对新建立的连接造成数据扰乱

字节流的协议

TCP把应用交付的数据仅仅看成是一连串的无结构的字节流,TCP并不知道字节流的含义,TCP并不关心应用程序一次将多大的报文发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络拥堵的程度来决定一个报文段应该包含多少字节。 MSS:Max Segment Size,默认536byte实际数据 在这里插入图片描述

在这里插入图片描述 连接状态查看

netstat -ntp -c 1

数据可靠性传输

停止等待协议: 在这里插入图片描述 重传机制: 1.ack报文丢失(效率低下) 在这里插入图片描述 2.请求报文丢失(效率低下) 在这里插入图片描述 滑动窗口协议与累计确认(延时ack) 滑动窗口通过tcp三次握手和对端协商。且受网络影响 在这里插入图片描述

HTTPS协议

由于HTTP天生“明文”的特点,整个传输过程完全透明,任何人都能够在链路中解惑、修改或者伪造请求/响应报文,数据不具有可信性。 因此就诞生了为安全而生的HTTPS协议 使用HTTPS时,所有的HTTP请求和响应在发送到网络中之前,都要进行加密。 在这里插入图片描述

SSL/TLS

SSL即安全套阶层(Secure Sockets Layer),由网景公司于1994年发明, IETF在1999年把它改名为TLS(传输层安全,Transport Layer Security),正式标准化,到今天TLS已经发展出了主流的三个版本,分别是2006年的1.1、2008年的1.2、2018的1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

摘要算法

摘要算法能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。任意微笑的数据差异,都可以生成完全不同的摘要。所以可以通过把铭文信息的摘要和明文一起加密进行传输,数据传输到对方之后再进行解密,重新对数据进行摘要,再比对就能发现数据有没有被篡改。这样就保证了数据的完整性。 在这里插入图片描述

对称密钥加密算法

它有两个密钥,一个叫“公钥”,一个叫“私钥”。两个密钥可以是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。非对称加密可以解决“密钥交换”的问题。网站秘密保管私钥,在网上任意分发私钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。非对称密钥加密系统通常需要大量的数学运算,比较慢。如(DH、DSA、RSA、ECC)

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3