HTTP协议及模块

ppgo8 于 2023-05-17 发布

HTTP协议及模块

推荐网友总结笔记:阮一峰老师互联网协议

https://blog.csdn.net/weixin_44121529/article/details/124039484

HTTP协议介绍

概念

注意:JavaScript/CSS/图片资源会自动发起请求

报文:粗略理解 就是一堆字符串

电脑可以安装fiddler软件,查看HTTP请求报文和响应报文。

image-20230517165335959

请求报文

请求报文的组成:请求行 请求头 空行 请求体

请求行

请求行的组成:请求方法、 URL统一资源定位器、HTTP协议版本号

请求头

HTTP请求头的数据格式:键值对

常见的请求头有:

image-20230519194807535

请求体

请求体的内容的格式非常灵活。

响应报文

响应报文的组成:响应行 响应头 空行 响应体

响应行

响应状态码和响应字符串关系是一一对应的。

响应头

数据格式:键值对

常见的响应头

响应体

响应体内容的类型是非常灵活的,常见的类型有 HTML、CSS、JS、图片、JSON、视频等

IP协议

IP分类

32位提供的ip数量约43亿。

2022年,联合国宣布世界人口达到80亿。

ip不够用,怎么办?

共享ip

公网ip:

局域网ip、私网ip:

本地回环IP:127.0.0.1

image-20230517181652131

端口

一台现代计算机有$2^{16}=65536$个端口(范围0-65535)

一个应用程序可以实现一个或多个端口

端口是应用程序的数字标识。

端口的作用:可以实现不同主机应用程序之间的通信。(相同主机不同应用程序也可以把?)

image-20230517182527073

HTTP服务

注意点

停止服务:在node.js的启动服务的命令行按住ctrl+c

代码更新问题:如果代码更新了必须要重新启动服务,才会返回新的内容

中文乱码问题:响应体中有中文会乱码,设置响应头返回的字符集

response.setHeader("content-type","text/html;charset=utf-8")

端口被占用:

Error:listen EADDRINUSER:address already in use:::9000

​ 关闭当前正在运行监听端口的服务(使用较多

image-20230517185310446

​ 修改其他端口号

默认端口:


favicon.ico请求是谷歌的默认行为,会访问获得网页的图标,(网页标签栏的左边的小图标)。

image-20230517185727622

借助浏览器的network 就可以查看请求报文和响应报文的内容。


响应头

多个重名的响应头属性,属性值用数组的方式复制

响应体:write和end都是设置响应体。

一般用write设置了响应体,就不用end设置响应体的内容了end()内为空即可。

write可以写多次,但是end方法只能写一次并且必须写一次、

有且只能有一个end方法(类似于return函数)

创建HTTP服务

浏览器查看HTTP报文

获取HTTP请求报文

设置HTTP响应报文

网页资源的基本加载过程

网络资源的加载是循序渐进的

网页在加载的过程中,向浏览器发送了几次请求?

静态资源服务

不要和静态网页和动态网页的概念搞混。

网站根目录或静态资源目录

HTTP服务在哪个文件夹中寻找静态资源,那个文件夹就是静态资源目录,也称之为网站根目录。

简单理解

端口号后的/ 第一个文件 在哪个目录下,哪个就是静态资源目录,也是网站根目录。

用户在地址栏输入url:协议+主机名+端口/请求的资源路径,把协议+主机名+端口 换成静态资源目录即可,也就是静态资源目录/请求的资源路径

网页中的URL

网页中的URL分为两大类:相对路径与绝对路径

绝对路径

绝对路径可靠性强,在项目中运用的多。

但是这些大多绝对路径都是通过拼接得到的,而不是直接写死的

形式 特点
http://atguigu.com/web 直接向目标资源发送请求;网站中的外链用此形式
//atguigu.com/web 与页面URL的协议拼接形成URL再发送请求;大型网站用的多
/web 与页面URL的协议、主机、端口拼接形成完整的URL再发送请求;中小型网站

相对路径

相对路径在发送请求时,需要与当前页面的URL路径进行计算,得到完整的URL后,再发送请求,学习阶段用的较多

如果当前网页的URL为http://www.atguigu.com/course/h5.html

形式 最终的URL
./css/app.css http://www.atguigu.com/course/css/app.css
js/app.js http://www.atguigu.com/course/js/app.js
../img/logo.png http://www.atguigu.com/img/logo.png
../../mp4/show.mp4 http://www.atguigu.com/mp4/show.mp4

HTML文件中的相对路径,和当前HTML文件所在的路径有关。


小结

网页中使用URL的场景小结

使用了URL就代表请求了资源

包括但不限于:

设置资源类型(mime类型)

GET和POST场景

GET和POST请求的区别

GET和POST是HTTP协议请求的两种方式。