计网夯实基础——HTTP协议篇

首先以一个问题开始:我们在日常是如何访问web网站的?

当在浏览器的地址栏输入URL时,我们就能看到需要的web页面了。(初步解释)

Web页面当然不是凭空显示出来的,根据指定的URL,浏览器从服务器那边获取内容和一些资源,像这种通过发送请求来获取服务器资源的浏览器,统称为客户端(client)

而这种web,就是建立在HTTP协议上的。

HTTP位于TCP/IP协议的应用层上(决定了向用户提供应用服务时通信的活动)

这是HTTP协议利用TCPIP协议进行通信时,所经过的分层顺序,分为接收和发送过程

这是数据包的形成过程

下面用一张图来概括各网络协议和HTTP之间的关系

图上可以看到HTTP最终的生效要依赖许多其他的协议

URI:URI就是由某个协议方案表示的资源定位标识符。

URL:就是使用浏览器地址栏输入的网址

URI格式:

HTTP协议使用URI让客户端定位到资源

HTTP协议是用于客户端和服务器之间的通信,规定请求必须是用户发出,而服务器收到则回复响应

Eg:

这个请求内容就是访问服务器上index的页面资源。

而在接收到这段请求之后,服务器会回复一个响应报文:

响应报文由协议版本、状态码,解释原因的短语、可选的响应首部字段和实体主题构成

HTTP协议是不保存状态的协议,不具备保存之前发送过的请求或响应的功能。

虽然HTTP是无状态协议,但为了实现某些功能,引入了cookie技术,这个后面介绍。

下面介绍一些告知服务器请求意图的HTTP方法

GET:获取资源

Eg:

POST:传输实体主体

Eg:

PUT:传输文件

Eg:

HEAD:获得报文首部

Eg:

DELETE:删除文件

Eg:

OPTIONS:询问支持的方法

Eg:

TRACE:追踪路径

CONNECT:要求用隧道协议进行连接

下面是一些HTTP支持的方法:

为了解决TCP连接断开的问题,在之后的HTTP版本中出现了持久连接,它使得多数请求可以以管线化的方式进行发送(能并发发送多个请求,不用一个一个来)

使用cookie的状态管理

详解HTTP报文:

结构:

两种报文的首部内容由请求行、状态行、首部字段、其他四部分构成。

报文主体和实体主体的差异:

HTTP的状态码:

用来告知客户端从服务器端返回的请求结果

2xx 成功

200 ok  表示请求被正常处理

204 No Content 请求处理成功,但返回的响应报文中没有实体的主体部分,一般在只需要客户端往服务器发送信息的情况下使用。

206 Partial Content 表示客户端进行了范围请求

3xx 重定向

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

307 Temporary Redirect

临时重定向 与302有相同的含义,不会从POST变成GET

 4xx客户端错误

400 Bad Request

请求错误

401 Unauthorized

请求需要认证

403 Forbidden

请求被服务器拒绝

404 Not Found

找不到资源

5xx 服务器错误

500 Internal Server Error

内部资源出错

503 Service Unavailiable

表明服务器处于停机或超负荷等状态

HTTP首部

HTTP报文由报文首部、空行和报文主题构成

在HTTP请求报文中,报文首部由方法、URI、HTTP版本、HTTP首部字段组成

在HTTP响应报文中,首部由状态码、HTTP版本、HTTP首部字段三部分组成

在这些组成部分中比较重要的是首部字段

首部字段结构:首部字段名:字段值(可以有多个)

首部字段可以分为四种类型:

通用首部字:

请求首部字段:

响应首部字段:

实体首部字段:

End-to-End首部和Hop-by-Hop首部

逐跳首部举例:

下面来展开说说不同类型首部字段

通用首部字段:

Cache-Control

通过指定这个字段的指令,就可以实现操作缓存

Connection

这个首部字段具有两个作用:

控制不再转发给代理的首部字段

管理持久连接

Date

表示创建HTTP报文的日期和时间

Pragma

Trailer

Transfer-Encoding

规定了传输报文主体时采用的编码方式

Upgrade

用于检测HTTP协议及其他协议是否可以用更高版本进行通信

Via

追踪客户端和服务器之间的请求和响应报文的传输路径

经过的各个代理服务器会在Via首部添加自己的信息

Warning

告知用户与缓存相关的问题的警告

为Cookie服务的首部字段

Set-Cookie

关于安全方面的HTTP知识

HTTP主要有以下的不足:

通信使用明文,可能会被窃听

不验证对方身份,有可能遭遇伪装

无法证明报文的完整性,可能遭到篡改

为了解决上述出现或未出现的问题,就有了HTTPS这个东西

HTTP+加密+认证+完整性保护=HTTPS

HTTPS是身披SSL外衣的HTTP

HTTP采用混合加密方式,即采用共享密钥加密和公开密钥加密两者并用的混合加密方式。在交换密钥的环节使用公开密钥加密方式,之后的建立通信交换报文则使用共享密钥加密方式

HTTPS的安全通信机制:

HTTPS这么好,为啥不一直用?

  因为会造成cpu资源的占用,也会造成购买证书的开销

如果web只想让特定的人看到,那怎么办?

  进行认证

认证核对的信息一般是密码、动态令牌、数字证书、生物认证、IC卡信息等

看一下Basic认证的步骤:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值