javascript服务端编程
服务端编程也就是后端编程,用来接收客户端请求、处理业务逻辑、响应数据。能够进行后端编程的语言有java、PHP、python等,javascript也能进行后端编程,提供给javascript进行后端编程的平台是nodejs。
nodejs是一个应用编程平台,能运行javascript语言编写的代码,提供了javascript的运行环境。nodejs是一个基于Google的V8引擎,V8引擎执行javascript的速度非常之快,性能很好。它提供了大量的应用编程接口API,在执行http网络、数据库、文件等操作时十分方便。
用javascript语言创建一个web服务器的步骤:
- 引入nodejs内置模块http
const http = require('http')
- 创建后端web服务器【第一个参数request是请求对象–客户端的请求信息;第二个参数response是相应对象】
let server = http.createServer(function(request,response){
//解决中文乱码
response.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
//1.接收客户端请求
let path = request.url
//2.处理业务逻辑
if(path.indexOf('/login') !== -1){
//3.响应数据
let str = `
<form>
用户名:<input type="text",name="username"><br>
密 码:<input type="password",name="password"><br>
<input type="submit">
</form>
`
response.write(str) //write方法写入响应给客户端的数据
}else{
response.write("未开发")
}
response.end() //本次响应完成
}
})
- 启动web服务器【第一个参数是端口号,第二个参数是回调函数,当服务器启动成功就执行里面的代码】
server.listen(3000,function(){
console.log("3000")
})
http协议
- 概念:http是超文本传输协议,基于响应模式的无状态、无连接的应用层协议。
- 特点:
(1)请求响应模式
(2)传输数据速度快
(3)传输数据类型多样
(4)无连接【每次请求响应完成断开连接】
(5)无状态【请求响应的数据http协议不会记录,需要自己记录处理】 - http工作流程
(1)与服务端建立连接
三次握手:服务端与客户端建立稳定可靠的连接。
(2)发送请求
客户端向服务端发送数据,这个数据称为请求包。请求包的本质是一串有格式的文本信息,格式如下:
请求行 【请求方法 URL地址 协议版本】
请求头部
请求包体(正文)【传给服务器的数据】
(3)服务端接收请求响应数据
服务端向客户端响应的数据称为响应包,是一串有格式的文本信息,格式如下:
响应行(页脚状态行)【 协议版本 状态码 状态码描述】
响应头部
响应包体
(4)断开连接
四次握手