目录
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方法用来传输实体的主体。
虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。
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的主要特点:
-
全双工通信:WebSocket允许服务器和客户端之间进行双向通信,即服务器可以随时向客户端发送消息,客户端也可以随时向服务器发送消息。
-
持久连接:与HTTP请求不同,WebSocket创建后会保持连接打开状态,直到客户端或服务器端明确关闭连接。
-
低延迟:由于连接是持久的,WebSocket减少了连接和断开连接的开销,从而降低了通信延迟。
-
较少的开销:与HTTP请求相比,WebSocket的数据传输不需要HTTP头部信息,因此数据传输的开销较小。
-
适用于实时应用:由于WebSocket的低延迟和实时性,它非常适合需要实时通信的应用,如在线游戏、实时聊天应用和股票交易平台