图解HTTP有感

目录

1、网络请求流程

2、HTTP报文结构

2.1、请求报文首部和响应报文首部

2.2、HTTP的首部字段有以下几种类型

3、HTTP的请求方式

4、响应状态码

5、HTTP安全

6、HTTP对用户身份的认证

7、全双工通信Websocket

7.1、什么是Websocket?

7.2、Websocket的主要特点:


1、网络请求流程

客户端发送请求经四层架构(每经过一层都会在请求首部添加首部字段)到达服务器,在服务器获得结果后,在经过四层架构(每经过一层就对响应的首部字段进行去除)响应给客户端

2、HTTP报文结构

2.1、请求报文首部和响应报文首部

只能由客户端发送请求报文,请求到服务端进行返回响应报文

请求报文通常由:请求方式+URL+协议版本+请求首部字段

响应报文通常为:协议版本+响应码+描述短语+响应首部字段

2.2、HTTP的首部字段有以下几种类型

通用首部字段(General Header Fields)
请求报文和响应报文两方都会使用的首部。

请求首部字段(Request Header Fields)
从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

响应首部字段(Response Header Fields)
从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

实体首部字段(Entity Header Fields)
针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

非HTTP首部协议字段
还有Cookie、Set-Cookie和Content-Disposition等在其他RFC中定义的首部字段,它们的使用频率也很高

Cookie技术 

Http是不保存状态的协议,为了即使他跳转到该站的其他页面后,也需要能继续保持登录状态

引入了Cookie技术来管理状态,可以管理用户

3、HTTP的请求方式

GET :获取资源

GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回;如果是像CGI(Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的输出结果。

POST :传输实体主体

POST方法用来传输实体的主体。

虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。

PUT:传输文件

PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。

但是,鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的Web网站不使用该方法。若配合Web应用程序的验证机制,或架构设计采用REST(Representational State Transfer,表征状态转移)标准的同类Web网站,就可能会开放使用PUT方法。

DELETE:删除文件

DELETE方法用来删除文件,是与PUT相反的方法。

DELETE方法按请求URI删除指定的资源。但是,HTTP/1.1的DELETE方法本身和PUT方法一样不带验证机制,所以一般的Web网站也不使用DELETE方法。当配合Web应用程序的验证机制,或遵守REST标准时还是有可能会开放使用的。

4、响应状态码

  • 200 OK:请求成功,服务器返回了请求的资源。
  • 301 Moved Permanently:请求的资源已永久移动到新URL。
  • 302 Found:请求的资源临时移动到另一个URL。
  • 304 Not Modified:资源未修改,可以使用缓存版本。
  • 400 Bad Request:请求有语法错误或请求参数不正确。
  • 401 Unauthorized:请求需要认证,或者提供的认证信息无效。
  • 403 Forbidden:服务器理解请求但拒绝执行。
  • 404 Not Found:服务器找不到请求的资源。
  • 500 Internal Server Error:服务器内部错误,无法完成请求。
  • 502 Bad Gateway:服务器作为网关或代理,收到无效响应。
  • 503 Service Unavailable:服务器暂时不可用或正在维护。
  • 504 Gateway Timeout:服务器作为网关或代理,但未及时从上游服务器接收响应

5、HTTP安全

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

(1)HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替了而已。

通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再有SSL和TCP通信。

所以HTTPS就是身披SSL协议这层外壳的HTTP。

(2)HTTPS采用共享秘钥加密和公开秘钥加密两者并用的混合加密机制

在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式

HTTPS的安全机制可以说是由响应速度来换的,HTTPS要比HTTP慢2--100倍因为SSL通信部分消耗网络资源,SSL通信部分,要对通信进行处理,要消耗一定的时间

6、HTTP对用户身份的认证

使用Cookie来管理Session

当客户端发送请求到服务器,服务器会在响应报文头部新增一个set-Cookie字段,客户端接收到响应报文后就将Cookie添加到请求报文头部,后续的请求到服务器时,服务器会与自己存储的Cookie做比较,来分析是哪个客户。

7、全双工通信Websocket

7.1、什么是Websocket?

HTTP是单双工通信,是在数据传输时只能有一方传输,另一方进行等待,

服务器不能主动的发送数据,只能是客户端发送请求了,服务器根据请求响应对应的数据

所以这是一个致命的问题,要解决这个问题就要引入Websocket由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端,而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方都可直接向对方发送报文

7.2、Websocket的主要特点:

  1. 全双工通信:WebSocket允许服务器和客户端之间进行双向通信,即服务器可以随时向客户端发送消息,客户端也可以随时向服务器发送消息。

  2. 持久连接:与HTTP请求不同,WebSocket创建后会保持连接打开状态,直到客户端或服务器端明确关闭连接。

  3. 低延迟:由于连接是持久的,WebSocket减少了连接和断开连接的开销,从而降低了通信延迟。

  4. 较少的开销:与HTTP请求相比,WebSocket的数据传输不需要HTTP头部信息,因此数据传输的开销较小。

  5. 适用于实时应用:由于WebSocket的低延迟和实时性,它非常适合需要实时通信的应用,如在线游戏、实时聊天应用和股票交易平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值