HTTP需要了解的基础知识

HTTP协议

重要性:无论是以后用webservice,还是用rest做大型架构,都离不开对HTTP协议的认识。

甚至可以说:
webservice = HTTP + XML
Rest = HTTP +JSON
各种API一般也使用HTTP+XML/JSON来实现。
对HTTP协议了解后,学习AJax也是很容易理解的。
HTTP协议是支撑Web基础的协议。

目前相关的书籍有:
《HTTP权威指南》-够权威,但是厚度让人望而生畏
《TCP/IP详解》-晦涩难懂,学习难度大,不适合初学者

什么是协议?
计算机中的协议和现实中的协议是一样的,如贷款协议,业主,开发商,银行都有,一式多份。
双方或多方都共同遵循的一个规范,这个规范就可以成为协议。
计算机之所以能全世界互通,协议是功不可没的,如果没有协议,每台计算机各说各的,根本谁都听不懂谁。
在计算机世界中有FTP、HTTP、TCP/IP协议等等,多得很!
比如:张三要去叫李四玩,双方约定,张三到了李四家门后口,张三拨打李四手机,李四不要接听,嘟嘟响两声后张三会挂掉,这就告诉李四他在李四家门口了,快出来,这就是两人之间的暗号协议。当张三到了后,拨打李四手机,手机一响,李四慌乱中接听了。张三埋怨李四不遵守协议。协议就是双方达成的共识,你懂我懂就行。

HTTP协议,按照一定的规则,向服务器发送数据,而服务器按照一定的规则响应数据。
HTTP:HyperText Transfer Protocol,超文本传输协议。

HTTP的一般过程:
原始状态:客户端和服务端之间没有关系
此时需要客户端建立与服务端的连接(建立连接的同时也顺带着发送了请求),就是建立网络上的虚拟电路。

 服务端收到连接和请求后,沿着连接的虚拟电路返回给客户端响应信息,然后断开与客户端的连接。

上述就完成来一次HTTP请求过程,可以看到HTTP是无状态的,完成一次会话后,就断开了连接。
它们之间传送交流的信息是什么呢?HTTP报文

实践一下!
我们这里拿node.js+express搭建HTTP服务器来进行实验。
新建目录,执行node -v和npm -v查看版本,进行如下安装:

npm install express      # Express 是一个简洁而灵活的 node.js Web应用框架
npm install body-parser      # node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
npm install cookie-parser    # 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象
npm install multer           # node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据
// server.js
var express = require('express');
var app = express();
 
app.get('/', function (req, res) {
   res.send('Hello World');
})
 
var server = app.listen(8081, function () {
 
  var host = server.address().address
  var port = server.address().port
 
  console.log("http://%s:%s is running!", host, port)
 
})

执行node server

在Chrome浏览器地址栏输入:localhost:8081
 

 打开审查元素,Network

Get方法

POST方法

 

posted on 2020-05-03 16:44  我来乔23  阅读(251)  评论(0)    收藏  举报

导航