浅谈HTTP

来源:互联网 发布:php程序员是什么意思 编辑:程序博客网 时间:2024/04/30 11:41

HTTP协议

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请求流程:

  1. 浏览器向服务器发送HTTP请求(GET或者POST两种方式。GET仅请求资源,POST会附带用户数据.)
  2. 响应服务器向浏览器返回HTTP响应。

    响应代码:

200表示成功3xx表示重定向4xx表示客户端发送的请求有错误5xx表示服务器端处理时发生了错误;

响应类型:由Content-Type指定;
3. 如果浏览器还需要继续向服务器请求其他资源。

node.js中的http

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

原创粉丝点击