http是网络上传输HTML的协议,用于浏览器和服务器之间的一种通信工具。
(google浏览器提供了一套web应用调试工具,适合web开发。ctrl+shift+i即可打开Chorme开发者工具。其中Network就显示浏览器和服务器的通信。)
Network记录浏览器都干了什么。
记录代码在view source显示。
在Request Headers中 第一行:
GET / HTTP/1.1 //get表示一个读取请求,将从服务器获得网页数据,/表示URL的路径,HTTP/1.1表示采用HTTP协议版本1.1。从第二行开始:
Host:www.aaa.com.cn //表示请求的域名在Response Headers中:
HTTP/1.1 200 OK //200表示一个成功的响应,OK是说明。 Content-Type:text/html //指示响应的内容,这里是text/html表示HTML网页。HTTP请求流程:
浏览器向服务器发送HTTP请求(GET或者POST两种方式。GET仅请求资源,POST会附带用户数据.)响应服务器向浏览器返回HTTP响应。
响应代码:
200表示成功 3xx表示重定向 4xx表示客户端发送的请求有错误 5xx表示服务器端处理时发生了错误;响应类型:由Content-Type指定; 3. 如果浏览器还需要继续向服务器请求其他资源。
http服务器: node.js自带http模块,应用程序通过http模块中的request和response完成与http协议的交流。
request封装了HTTP请求,我们调用它就可以拿到所有请求的信息。
response封装了HTTP响应,操作response对象的方法,就可以把HTTP响应返回给浏览器。
eg: node.js实现一个HTTP服务器程序,用来返回Hello world!
'use strict'; // 导入http模块: var http = require('http'); // 创建http server,并传入回调函数: var server = http.createServer(function (request, response) { // 回调函数接收request和response对象, // 获得HTTP请求的method和url: console.log(request.method + ': ' + request.url); // 将HTTP响应200写入response, 同时设置Content-Type: text/html: response.writeHead(200, {'Content-Type': 'text/html'}); // 将HTTP响应的HTML内容写入response: response.end('<h1>Hello world!</h1>'); }); // 让服务器监听8080端口: server.listen(8080); console.log('Server is running at http://127.0.0.1:8080/');我们运行程序之后,在浏览器输入http://localhost:8080,就可看到Hello world! 之后在控制台可以看到:
GET: / GET: /favicon.ico这是程序打印的请求信息。
参考:https://www.liaoxuefeng.com