web及网络基础(7)

69 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天

TCP的三次握手协议:

发送端:发送个带有 SYN 标志的 数据包给对方 接收端:收到后 回传带有SYN/ACK标志的数据包 表示确认信息 发送端:回传ACK标志的 数据包

简单的HTTP协议

HTTP协议 与 TCP/IP协议 都用于客户端和服务器之间通信

请求访问文本或图像的一端称为客户端 提供资源响应的一端称为服务器端

发送请求 和 响应回复 的区别

示例

①客户端 先 发送请求:

GET /HTTP/1.1 Host:hackr.jp

//其中的 GET 表示请求访问服务器的类型 称为方法 随后的字符串 /index.htm 指明了请求访问的资源对象(也叫做请求URI,request-URI) 最后的 HTTP/1.1 即 HTTP的版本号用来提示客户端来使用的HTTP协议功能

② 服务器 发送响应

HTTP/1.1 200 OK Date:Tue, 10 Jul 2012 07:20:12 GMT Content-Length: 362 Content-Type: text/html

...

综上 这段内容表示请求访问 某台HTTP服务器 的 /index.htm页面资源

请求报文由: 请求方法(如前面的 GET POST等) + 请求URI + 协议版本 + 可选请求首部字段内容 组成


200 OK 表示 请求的处理结果 状态码(status code)和 原因短语 (reason-phrase)

  1. http1.1与http1.0的更新 长连接:新增Connection字段,可以设置keep-alive值保持连接不断开 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回 缓存处理:新增字段cache-control
  2. 长连接 如今使用的http协议大部分都还是http1.1, http协议并没有什么长连接,短连接,而是底层使用的运输层协议的tcp协议会进行连接(因为是可靠协议,会进行三次握手和四次挥手),这里不多说,可以去看看计算机网络的知识。 那为什么会出现这个长连接呢?因为在http1.0的时候,每次发起请求都需要与服务器建立连接,然后完成一次请求就要断开连接,都要进行一次三次握手和四次挥手的过程,这些操作损耗了大量时间。