网络/协议
在日常的开发中,很多开发的同学可能很少了解的HTTP协议的底层原理。HTTP协议的底层涉及到请求响应模型,HTTP的工作流程。cookie和session的原理等。
HTTP基础原理
HTTP是HyperTextTransfer Protocol(超文本传输协议)的缩写。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HTTP协议通常承载于TCP协议之上,HTTPS就是也承载于TLS或SSL协议层之上。
HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。
HTTP协议是一个双向协议:我们在上网冲浪时,浏览器是请求方A,百度网站就是应答方B。双方约定用HTTP协议来通信,于是浏览器把请求数据发送给网站,网站再把一些数据返回给浏览器,最后由浏览器渲染在屏幕,就可以看到图片、视频了。
HTTP的工作流程可以分为如下步骤:
客户端发出HTTP请求,包含请求方法(GET、POST等)、URL地址、HTTP的版本、请求头等信息。
服务器接收HTTP请求,并对请求进行解析和处理,根据请求内容返回对应的HTTP响应。
服务器发送HTTP响应,包含响应状态码、响应头、响应体等内容。
客户端接收HTTP响应,并对响应进行解析和处理,展示给用户,如渲染HTML页面或执行JavaScript脚本。
需要注意的是,HTTP协议是基于TCP协议的,每个HTTP请求都需要先建立TCP连接,然后才能进行HTTP数据的传输。TCP连接是一个面向连接的、可靠的数据传输通道,确保数据的可靠传输,但是每个TCP连接都需要建立和维护一定的开销。所以,在HTTP/1.1中引入了Connection: keep-alive来使得在同一TCP连接中可以发送多个HTTP请求和响应,以降低TCP连接的建立和释放带来的开销。
此外,HTTPS协议是基于HTTP协议的,但它通过SSL/TLS协议来提供了数据传输的加密和身份认证机制,保证了数据的安全性。相比HTTP协议,HTTPS协议虽然会增加一些开销,但在一些安全性要求高的场景下使用,是一种更为安全的选择。
全部0条评论
快来发表一下你的评论吧 !