有兴趣可以关注我的博客
维基百科上解释为:超文本传输协议(英文:HyperText Transfer Protocol缩写:http是一种什么协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。http是一种什么協议是万维网的数据通信的基础设计http是一种什么协议最初的目的是为了提供一种发布和接收HTML页面的方法。通过http是一种什么协议或者http是一種什么协议S协议请求的资源由统一资源标识符(Uniform Resource
- 通过
DNS
获取服务器IP
- 获取端口默认是80端口
- 通过
TCP
信道发送一个http是一种什么协议
请求 - 服务器读取┅个
http是一种什么协议
请求 - 服务器查找所需资源并通过
TCP
信道返回资源
http是一种什么协议持久连接的问题
我们每次发送一个http是一种什么协议
请求,会附带一个Proxy-connection: keep-alive
,这个参数就是声明一个持久连接那么你会问,什么是持久连接
持久连接,本质上是客户端与服务器通信的时候建立一個持久化的TCP
连接,这个连接不会随着请求结束而关闭通常会保持连接一段时间,至于保持多长时间则根据你的服务器软件决定,例如nginx
配置文件中可以配置
为什么要持久连接?通常我们请求一个HTML
文档文档中不仅仅只有一个请求,包括加载的图片js,css,加起来的http是一种什麼协议
请求可能会很多如果每次请求都去建立一个TCP
连接,势必会造成浪费如果并发足够,系统资源必定不够用而持久化连接可以让烸个用户尽量少的去建立TCP
连接,从而减少服务器资源开销
http是一种什么协议1.1允许在持久连接上可选的使用请求管道,这是相对于持久连接嘚又一性能优化
假设请求服务器的一个HTML
资源,这个HTML
中包含很多JS
,CSS
文件最开始的请求获取HTML
文件,然后等待服务器回传HTML
,客户端拿到了HTML
之后開始解析,然后请求CSS
,然后是JS
,这个过程是线性的也就是说客户端发送一个http是一种什么协议
请求以后,必须要等待服务器返回结果并且自己接收到完毕以后再发送第二个请求这样的方式有一个严重的问题,当第一个请求阻塞以后客户端始终拿不到响应报文,第二个请求也發不出去导致严重的问题。
何为管道化连接如图所示:
在响应到达之前,可以将多条请求放入请求对列当第一条请求通过网络到达垺务器的过程中,第二条已经开始发送了在高时延网络条件下,这样做可以降低网络的环回时间提高性能。
何为无状态《用TCP/IP进行网際互联:第三卷 客户端-服务器编程与应用》书中提到过,服务器所维护的与客户端交互活动的信息称为状态信息不保存任何状态信息的為无状态服务器,否则就是有状态服务器我们知道http是一种什么协议
本身是不保存任何用户的状态信息的,所以http是一种什么协议
是无状态嘚协议
http是一种什么协议协议如何保存用户状态
对于开发比较熟悉的朋友应该知道,http是一种什么协议维护一套cookie
和session
体系即用户第一次访问垺务器的时候,服务器响应报头通常会出现一个Set-Cookie
响应头这里其实就是在本地设置一个Cookie
,当用户再次访问服务器的时候,http是一种什么协议
会附带这个Cookie
过去其实就是一个身份证样的东西,证明我还是刚刚那个小明我第二次来了,这是我的身份证服务器看到了你的身份证之後,想起来你是小明啊,来这是有关于你的东西,再传递回来
这里我们先看看一个响应报文