有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

http 传输协议工作原理

服务端 cat 9个月前 (12-27) 105次浏览 已收录 0个评论 扫描二维码

工作原理

Http(HyperText Transfer Protocol):超文本传输协议 (文本、图片、视频、音频、css、js....)。

规定 你如何发请求(如何把诉求告诉服务器),以及如何响应(如何把结果返回给客户端)

1 交互模型(请求与响应)

交互模型(请求与响应):HTTP 协议采用了 请求/响应 的交互模型。也就是说必须是客户端主动发起请求,再由服务器端处理请求,同时被动的把内容响应给客户端

主动发请求,被动的响应。现在的交互:前后端的数据交互 。

2 http协议的组成

请求消息、响应消息、请求方法、状态码

2.1 请求方法

说白了就是以什么方式发起的诉求(请求)。比如说: 美团、微信小程序上等下单。

用来表明要对服务器上的资源执行的某操作,以何种方式进行请求。

常见请求方法比如:get获取/post提交数据/delete删除/put更新的

2.2 状态码

用来标识响应的状态。服务器的结果要用状态码来进行描述。比如:404页面不存在。200成功。500服务器错误

404是前端的问题。

200成功:正常的拿到结果了。

500:前端没事,你直接找后端就可以了。

2.3 请求消息

描述:客户端发起的请求叫做 HTTP 请求,客户端发送到服务器的消息,叫做 HTTP 请求消息(又叫做 HTTP 请求报文。) 简单来说就是客户端告知服务器我要干什么。

组成:请求行、请求头部字段、请求体

请求体:除get方式的其它方式都有有请求体

2.4 响应消息

描述:响应消息就是服务器响应给客户端的消息内容,也叫作响应报文。比如:海底捞服务员把后厨准备好的食材交付给用户

组成:状态行、响应头部、空行、响应体、

Node创建服务器

创建服务器步骤

//1. 引入http模块。这个模块是内置模块
const http = require('http')

// console.log( typeof http ) //这是个对象
//2. 它身上有个 createServer() 函数 创建服务器的。

const server = http.createServer() //得到 个服务器对象

// console.log( typeof server )
//3. 兼听事件: 兼听用户发的请求事件
server.on( 'request',function(req,res){
/*
    req:request简写。语法上只是一个形参而已,请求消息
    res:response简写,响应消息
*/
    console.log('一个用户发起了请求')
    //此时这里没有响应。按照协议:一个请求必须对应一个响应啊。
    res.end('hello node.js') //这就是响应。
} )
//4.  必须要有个端口啊。服务器是封闭的。
    // 专业的说:叫开放端口(开启端口/兼听端口)
    //server.listen( 端口号 ) 0-65535 : 推荐使用3000及使用
    server.listen(3000)

    //当端口开启后,叫:服务器开启了、服务器挂载成功了。
    //注意:修改了代码,需要重新使用node运行这个文件,专业叫:重启服务器

//我们开发者如何访问这个服务器:
    /*
        http://localhost:3000
        http://127.0.0.1:3000
        上面的两个作用一样:代表访问的是你自己电脑上的服务器。

        自己的IP
        http://192.168.30.128:3000
    */

代码演示1:

设置响应头信息。res.writeHead(200,{'Content-Type':"text/html;charset=utf8"})
const http = require('http')
const server = http.createServer() //得到 个服务器对象

server.on( 'request',function(req,res){
    //设置响应头:告诉浏览器要以utf8 进行渲染
    res.writeHead( 200,{ 'Content-type':'text/html;charset=utf8' } )
        //响应头一定是在响应之前设置,也就是writeHead必须写在end之前 。
        
    res.end('你好node.js') //这就是响应。
} )

server.listen(3001)

 

喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址