创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
前言
运维必备——计算机网络,我是一名即将毕业的大学生,超超。计算机网络是计算机行业的入门基础,超说网络是笔者对于计算机网络知识的梳理总结,和超超一起学习计算机网络,搞定网络知识,秋招拿下理想offer!
系列文章
超说网络NO.2 | 深入了解计算机网络:网络边缘、网络核心、接入网和物理媒体
概述
超说网络NO.5 | 深入了解应用层Web服务和HTTP、HTTPs协议,以及面试常考题!
目录
web和HTTP的一些术语
Web页:由一些对象组成,对象可以是HTML文件、JPEG图像、Java小程序、声音剪辑文件等。Web页含有一个基本的HTML文件,该基本HTML文件又包含若干对象的引用(链接),通过URL对每个对象进行引用。
URL格式:访问协议,用户名,口令字,端口等。
HTTP:超文本传输协议
HTTP是什么?
HTTP: HTTP 是超⽂本传输协议,也就是HyperText Transfer Protocol。是一个基于请求与响应,无状态的,Web服务的应用层的协议,常基于TCP传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
HTTP超⽂本协议传输,它可以拆成三个部分:超文本、传输、协议。
协议:HTTP 是⼀个⽤在计算机世界⾥的协议。它使⽤计算机能够理解的语⾔确⽴了⼀种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理⽅式(⾏为约定和规范)。
传输:就是把⼀堆东⻄从 A 点搬到 B 点,或者从 B 点 搬到 A 点。别轻视了这个简单的动作,它⾄少包含两项重要的信息。HTTP 协议是⼀个双向协议。
超文本:HTTP传输的内容是超⽂本,它就是超越了普通⽂本的⽂本,它是⽂字、图⽚、视频等的混合体,最关键有超链接,能从⼀个超⽂本跳转到另外⼀个超⽂本。
HTTP的优缺点
HTTP优点
HTTP的主要优点是简单、灵活、易于拓展、应该广泛以及跨平台。
1. 简单
HTTP 基本的报文格式就是 header + body ,头部信息也是 key-value 简单⽂本的形式。
2. 灵活和易于扩展
HTTP协议⾥的各类请求⽅法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发⼈员⾃定义和扩充。同时 HTTP 由于是⼯作在应⽤层( OSI 第七层),则它下层可以随意变化。
HTTPS 也就是在 HTTP所在的应用层与TCP所在的传输层之间增加了 SSL/TLS 安全传输层,HTTP/3 甚⾄把 TCP 层换成了基于 UDP 的QUIC。
3. 应用⼴泛和跨平台
互联⽹发展⾄今,HTTP 的应⽤范围⾮常的⼴泛,HTTP 的应⽤遍地开花,同时天然具有跨平台的优越性。
HTTP缺点
由于HTTP是无状态、明文传输的因此数据不安全。
无状态的优缺点
⽆状态的好处,因为服务器不会去记忆 HTTP 的状态,因此不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。
⽆状态的坏处,既然服务器没有记忆能⼒,它在完成有关联性的操作时会⾮常麻烦
HTTP 的安全问题,可以用HTTPS 的方式解决,也就是通过引⼊ SSL/TLS 层,使得在安全上达到了极致。
HTTP属于客户/服务器模式
客户: 请求、接收和显示Web对象的浏览器;
服务器: 对请求进行响应,发送对象的Web服务器。
基于TCP连接的HTTP
1.客户发起一个与服务器的 TCP连接 (建立套接字) , 端口号为 80
2.服务器接受客户的TCP连接
3.在浏览器(HTTP客户端) 与 Web服务器(HTTP服 务器 server)交换HTTP报文 (应用层协议报文)
4.TCP连接关闭
HTTP是无状态的,即服务器并不维护关于客户的任何信息。
维护状态的协议很复杂:
1.必须维护历史信息(状态)
2.如果服务器/客户端死机,它们的状态信息可能不一致, 但二者的信息必须是一致,因此会需要重新连接
3.无状态的服务器能够支持更多的客户端
非持久与持久HTTP
非持久HTTP
非持久HTTP,最多只有一个对象在,TCP连接上发送,下载多个对象需要多个TCP连接。HTTP/1.0使用非持久连接。
非持久链接:
响应时间模型
往返时间RTT(round-trip time):一个小的分组从客户端到服务器,在回到客户端的时间(传输时间忽略)。
响应时间:一个RTT用来发起TCP连接,一个 RTT用来HTTP请求并等待HTTP响应
文件传输时间共:2RTT+传输时间
非持久HTTP的缺点
时间长,每个对象要2个RTT;操作系统必须为每个TCP连接分配资源,但浏览器通常打开并行TCP连接,以获取引用对象。
持久HTTP
持久HTTP,多个对