请求响应和http协议

网站的组成

网站应用程序主要分为两大部分:客户端和服务器端。

客户端:在浏览器中运行的部分,就是用户看到并与之交互的界面程序。使用HTML、CSS、JavaScript构建。

服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑。

网站服务器

网站服务器:能够提供网站访问服务的机器就是网站服务器,它能够接收客户端的请求,能够对请求做出响应

 Node网站服务器的组成:

1,电脑

2,Node环境

3,请求响应对象

服务器端的几个名词

IP地址

互联网中设备的唯一标识。

IP是Internet Protocol Address的简写,代表互联网协议地址

本地IP   :127.0.0.1

域名

由于IP地址难于记忆,所以产生了域名的概念,所谓域名就是平时上网所使用的网址

http://www.itheima.com  =>  http://124.165.219.100/

虽然在地址栏中输入的是网址, 但是最终还是会将域名转换为ip才能访问到指定的网站服务器。

本机域名:localhost

端口

端口是计算机与外界通讯交流的出口,用来区分服务器电脑中提供的不同的服务。

URL

统一资源定位符,又叫URL(Uniform Resource Locator),是专为标识Internet网上资源位置而设的一种编址方式,我们平时所说的网页地址指的即是URL。

URL的组成

传输协议://服务器IP或域名:端口/资源所在位置标识

http://www.itcast.cn/news/20181018/09152238514.html

http:超文本传输协议,提供了一种发布和接收HTML页面的方法。

在本地创建web服务器

 1 // 创建网站服务器的模块
 2 // 引用系统的http模块
 3 const http = require("http");
 4 
 5 // 创建web服务器
 6 const app = http.createServer();
 7 
 8 // 当服务器有请求的时候
 9 // 这是是为服务器添加事件,request代表添加的是请求事件,后面为事件处理函数
10 app.on("request", (req, res) => {
11     // res 为响应对象
12     // req 为请求对象
13 
14    // 对客户端的请求响应
15    res.end('<h1>hello user</h1>');
16 });
17 
18 // 监听端口,向外界提供服务
19 app.listen(3000);
20 
21 console.log("网站服务器启动成功");

HTTP协议

HTPP协议:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。

报文

在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。

请求报文

在为服务器添加请求事件的时候,第二个参数为事件处理对象,该对象有两个默认参数,第一个默认参数就为  req请求对象

该对象有三个属性

req.headers  // 获取请求报文

获取请求报文的方式

1     // 获取请求报文信息
2     // req.headers
3     console.log(req.headers);
4     // 获取请求报文中的某一项 [key]
5     console.log(req.headers["accept"]);
View Code

req.url      // 获取请求地址

获取的就是URL中的资源所在位置字段

  传输协议://服务器IP或域名:端口/资源所在位置标识

  如果没有资源所在位置字段默认获取   /

获取到不同字段进行不同的操作

 1     // 获取请求地址:就是一个标识,为用户提供不同的响应
 2     //  req.url
 3     console.log(req.url);
 4     if(req.url == "/index" || req.url == "/"){
 5         res.end("<h2>欢迎来到首页</h2>");
 6     }else if(req.url == "/list"){
 7         res.end("welcome to listpage");
 8     }else {
 9         res.end("note fond");
10     }
View Code

req.method   // 获取请求方法

请求方式分为两种:

GET请求       请求数据    该请求为:地址栏输入网址的方式

POST请求     发送数据    该请求为:表单的方式发送post请求

1 <!--
2 method:指定当前表单的提交方式
3 action:指定当前表单的提交地址
4 -->
5 <form method="post" action="http://localhost:3000">
6     <input type="submit">
7 </form>
POST请求

不同请求做不同的操作

1 // 获取请求方式
2 // req.method
3 console.log(req.method);
4 if (req.method == "POST") {
5    res.end("post")
6 } else if (req.method == "GET") {
7    res.end("get")
8 }
View Code

响应报文

 设置响应报文

1     // 响应报文
2     // res.writeHead()
3     // 参数1:状态码,不写默认200
4     // 参数2:对象:写的是响应报文信息。对接收的报文做什么处理
5     res.writeHead(200,{
6         // 设置解析代码为HTML,编码格式为utf8
7         "content-type":"text/html;charset=utf8"
8     });

状态码

200 请求成功

404 请求的资源没有被找到

500 服务器端错误

400 客户端请求有语法错误

响应报文的内容类型

text/html

text/css

application/javascript

image/jpeg

application/json

-------

猜你喜欢

转载自www.cnblogs.com/yzy-kyk/p/12608194.html