一、 概述
本文为HTTP经典五层模型和一个完整的响应过程。
二、HTTP基础
1.经典五层网络模型
(1)应用层:为应用软件提供了很多服务,构建于TCP协议之上
(2)传输层:向用户提供可靠的端到端(End-to-End)服务,传输层向高层屏蔽了下层数据通信的细节
(3)网络层:为数据在节点之间传输创造逻辑链路
(4)数据链路层:在通讯实体之间建立数据链路链接
(5)物理层:定义物理设备如何传输数据
2.浏览器输入URL后HTTP请求返回的完整过程
(1)浏览器输入URL后HTTP请求返回的完整过程
Redirect(跳转)-》App cache(应用缓存)-》DNS(DNS查找)-》TCP(TCP创建链接)-》Request(发送请求)-》Response(接受响应)
(2)形象理解(类比去吃饭)
Redirect:决定去哪个饭店吃饭,比如海底捞
App cache:类似脑中缓存。如果之前去过海底捞,我之前的地址就会存储在脑子里,然后我就可以直接去了
DNS:类似高德地图,可以查找具体地址。如果之前没有去过海底捞,我就要查找高德地图,知道海底捞具体地址。
TCP:类似叫服务员点单。我要叫一声:“服务员,点单“(第一次),服务员就走过来,说:” 好的”(第二次)。然后我说:“那我开始点单了”(第三次,确认开始交互)。然后,她就准备开始记录。
Request:类似点的菜单。菜单点好了,服务员就交给厨师了。
Response:类似桌上做好的菜。服务员按照菜单,上了菜,那么我们就可以大快朵颐了!
3.使用node.js构建实例
(1)按装node.js和git(使用gitbash)
node-v10.16.0-x64.msi
(2)使用gitbash查看node.js版本
...... MINGW64 ~
$ node -v
v10.16.0
(3)编写简单http服务:server.js
const http=require('http')
http.createServer(function(request,response){
console.log('request come',request.url)
response.end('Hello node.js!!!')
}).listen(8888)
console.log('server is listening on 8888 port')
(4)启动服务
...... MINGW64 ....../http
$ node server.js
server is listening on 8888 port
(5)访问服务http://localhost:8888/