Nginx:Web基础与HTTP协议

目录

1、dns域名

1.1 dns解析方式:

1.2 域名解析服务器:

2、html

2.1 网页、网站和主页、域名

2.2 URL和URI

3、Web(全球广域网,也称万维网)

3.1 静态页面

3.1.1 静态页面特点

3.2 动态页面

3.2.1 动态页面特点

4、http

4.1 http协议简介

4.2 工作流程

4.3 cookie

4.4 连接保持功能

4.5 http的请求方式

4.6 get方法

4.7post

4.8 响应码、状态码

4.8.1请求状态的响应码:

4.9 通信套接字

4.9.1 http协议当中socket的作用

4.9.2 套接字的相关接口

5、nc工具来模拟实验

6、HTTP协议请求流程分析


1、dns域名

网络是基于tcp/ip协议进行通信和连接的

应用层-----传输层-----网络层-----数据链路层-----物理层

ip地址:每一台主机都有一个唯一的地址标识(固定的ip地址),为了区分用户和计算机和进行通信

ip地址的问题在于32位二进制数组成的,不方便记忆,所以就引申出来域名

dns解析:就是把域名解析成ip地址,方便通信,访问

1.1 dns解析方式:

·  /etc/hosts :负责快速解析文件,包含了ip与主机名之间的映射关系,如果没有dns服务的情况下,可以使用/etc/hosts文件来完成解析和映射

· /etc/resolv.conf dns:客户端的配置文件,设置dns服务器的ip和域名,还包含了主机域名的搜索顺序,主要是域名解析服务器使用的配置文件

· 修改网卡配置文件 ifcfg-ens33

生效顺序 1.hosts 2.网卡配置文件 3.resolv.conf

dns域名解析服务器,由运营商来做
 

1.2 域名解析服务器:

· 保持和维护域名空间

· 响应解析请求

解析端(客户端)

跟域-----顶级域-----二级域-----子域----主机名

2、html

html:超文本标记语言,是一种规范的,标准的语言格式

网页文件本身就是一个文本文件,html通过标记的方式,告诉浏览器,如何显示文本当中的内容,html文件是一个文本文件,所有能够生成txt文件的工具,都可以进行编辑,修改之后的文件的后缀名:.html 或者 .htm

2.1 网页、网站和主页、域名

网页:纯文本格式的文件,用html语言来进行编写,在用浏览器翻译成页面的形式显示出来

网站:是由多个页面组成的,网页的结合体

主页:打开网站后,出现的第一个页面,就是网站的主页,也可以说是首页

域名:浏览网页时,输入的网址

http/https:用来传输页面的通信协议,https是加密的,是一种通信协议,基于tcp协议

端口号:http默认端口80;https默认是443

查看方式:netstat  -antp  |  grep  nginx

2.2 URL和URI

URL:万维网寻址系统,唯一的表示

eg:https://www.bilibili.com/类似这种的完整地址为url

https://www.bilibili.com/v/dance/?spm  id  from=333.1007.0.0这种格式url后面的为uri

超链接:超链接将网站中的不同页面连接起来

发布:将制作好的网页上传到服务器,供用户访问

html的语法

<html> 

    <head>网页的内容描述信息</head> 

    <body>网页的具体内容</body>

</html>

头标前中常用的标签

<title>文档标题

<base>页面标签的链接地址

<script>客户端的脚本文件

<style>html文档的样式

内容当中常用的标签

<table>定义表格

<tr>定义表格中的一行

<td>定义表格中某一行的一列

<img>定义图片

<a>超链接

<font>定义字体

3、Web(全球广域网,也称万维网)

web.1.0 静态页面就是看   web.2.0 动态页面用户交互

3.1 静态页面

静态页面就是标准的html文件

扩展名都是.htm或者.html

里面可以包含图片,文本,声音动画;是网站搭建的基础,早期的网站都是静态页面,没有后台数据,不包含可交互的内容,更新起来比较麻烦,一般用于展示型网站

3.1.1 静态页面特点

· URL是固定的,一般不包含以?为后缀

· 页面一经发布,都是保存在网站的服务器上

· 静态页面相对稳定,内容很少发生变化,容易被搜索引擎检索

· 没有数据库的支持,制作和维护的工作量,都比较大,网站的信息量如果太大,单纯的使用静态页面比较困难

· 没有交互性,功能上受限很大

· 浏览速度快,因为不需要连接数据库

3.2 动态页面

· 网页URL是不固定的,用户可以和后台数据进行交互

· 动态页面的网址中,一般包含一个特殊标记-----$?

 · 动态页面的语言:php jsp python buby tomcat(java)

3.2.1 动态页面特点

· 交互性 

· 自动跟新

· 特效,每个人进入页面的时候,会有不同的效果

小结:静态页面就是看,动态页面可以进行交互

4、http

4.1 http协议简介

http协议,超文本传输协议,互联网上应用最广泛的网络协议,基于tcp协议的应用的传输协议,面向用户,客户端和服务端之间进行数据传输的一种规则

4.2 工作流程

工作流程:

· 客户端和服务端进行tcp链接 :三次握手----建立连接

· 客户端发送http请求,服务端接收到http请求之后,响应客户端的请求

· socke 接口,通过端口进行通信

· 响应到达客户端,解析的过程(浏览器),用户查看,使用,访问

· 访问,使用,查看,结束之后,断开连接,四次挥手

http是一种无状态的协议,本身不会对发送的请求和响应的通信进行持久化处理(连接保持),为了让http能够快速的大量的进行处理事务,提高效率。连接保持是需要的

4.3 cookie

记录用户的登陆状态,跟踪统计用户访问网站的习惯,识别用户身份,保存用户信息

这个是服务器留在用户计算机的小文件

4.4 连接保持功能

http协议本身自带的连接保持功能

http1.1:自带链接保持功能,长连接

长连接:一次性获取页面的文件的所有信息,不再需要分开处理请求,所以速度大大加快,并行

连接保持:keep-alive,在一个tcp连接上可以传送多个http的请求和响应,减少了建立和关闭连接的消耗和延迟,连接保持是有时间,不是无限的,是默认开启的,60s

连接资源占用:长时间保持,会降低服务器的负载,如果是高并发,会使服务器耗尽资源

链接状态管理:长连接需要维护连接状态,服务器需要跟踪每个连接的状态,增加服务器的负担(集群的诞生)

https:加密通信协议,加密数据传输,加密过程涉及客户端和服务器之间进行密钥交换,确保只有合法的接收方,能够解密数据

4.5 http的请求方式

· 请求头

请求头当中包含请求体

请求体当中的内容

Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
User-Agent:浏览器的信息
Accpect-Encoding:客户端可以接受的编码格式
Host:表示请求的ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接
Closed:马上关闭

请求方式:get 就是用来向服务器发起请求,http协议中的get,就是请求

· 响应头

· 总览 General

post也是请求的一种,post是向后台发数据,向服务器会添加数据,也可以改变服务器上的数据

4.6 get方法

特点:

· 从指定服务器获取数据

· get请求是可以被缓存

· get请求会保存在浏览器上的记录中,cookie

· get请求的长度,是有限度的

4.7post

也是请求的一种,提交数据给服务器处理

· post请求不能缓存

· post请求也不会记录在浏览器的记录当中

· 请求体的长度也没有限制

4.8 响应码、状态码

状态码,响应码,服务器来进行提供的

请求之后,服务器收到请求会有一个回应,响应,同时反馈一个响应码

4.8.1请求状态的响应码:

  1xx表示 100-101 信息提示

  2xx表示 200-206 成功,请求响应成功,只要状态码是200,统统是成功

  3xx表示 300-305 重定向

  4xx表示400-415 客户端错误,请求不到,获取资源失败

  5xx表示 500-505 服务端错误 响应失败

总结:

200 成功

301 请求的永久页面跳转

304 重定向到缓存

403 禁止访问(没有权限)

404 请求页面找不到 (请求的文件不存在)

500 服务器内部错误(配置文件名错了)

502 网管失效(可能是网络,可能是防火墙)

503 服务不可用(可能是网络,可能是防火墙)

504 网关请求超时 (可能是网络,可能是防火墙)

4.9 通信套接字

socket:实现不同主机进行通信和数据交换,进程间传输的标志ip:端口

4.9.1 http协议当中socket的作用

· 客户机套接字:定义唯一的客户进程

· 服务端套接字:定义了一个唯一的服务器进程

4.9.2 套接字的相关接口

socket ()创建端口

bind ()绑定ip和端口

listen () 监听,等待连接

accept ()接受请求

connect ()请求连接建立

write () 发送

read () 接收 

close 关闭连接

ESTABLISHED 连接已经建立,正在传输数据

5、nc工具来模拟实验

[root@localhost ~]#nc -l 8888
#监听9527
[root@localhost ~]#ss -ntlp
#正在监听端口
LISTEN     0      10                *:9527

使用第二太机器测试
[root@localhost ~]#nc 192.168.233.10 8888
hello

6、HTTP协议请求流程分析

用户输入URL(地址链接)(http://www.baidu.com:80/tools.html)客户端获取到端口及主机名后,
客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,
如果有解析结。
如果没有客户端会去找host文件,host文件没有的,
客户端会去找本地的DNS缓存服务器,
本地的DNS缓存服务器没有,缓存服务器会去找根域,
根域没有,会返回一个.com.然后本地缓存服务器会去找顶级域,
顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。 

客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是CSS的box-sizing属性?它有哪些取值,各有什么不同?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS的box-sizing属性⭐ 取值⭐ 不同之处⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web…

关于Vue构建低代码平台的思考

一、前言 在项目实战开发中&#xff0c;尤其是大平台系统的搭建&#xff0c;针对不同业务场景&#xff0c;需要为用户多次编写用于录入、修改、展示操作的相应表单页面。一旦表单需求过多&#xff0c;对于开发人员来说&#xff0c;算是一种重复开发&#xff0c;甚至是繁杂的工作…

【C++起飞之路】初级—— auto、范围for循环、宏函数和内联函数

auto、范围for、内联函数、宏函数和nullptr 一、auto — 类型推导的魔法&#xff08;C 11)1、auto 是什么&#xff1f;2、工作原理3、优势4、限制和注意事项 二、范围for (C11)1、基本语法2、优势3、工作原理4、注意事项5、C11&#xff1a; 范围 for 循环的扩展&#xff1a; 三…

软件测试基础篇——LAMP环境搭建

LAMP 1、Linux系统的其他命令 find命令&#xff1a;在目录下查找文件 ​ 格式一&#xff1a;find 路径 参数 文件名 ​ 路径&#xff1a;如果没有指定路径&#xff0c;默认是在当前目录下 ​ 参数&#xff1a;-name 根据文件名来查找&#xff0c;区分大小写&#xff1b; -…

useState() 的使用及场景

useState是 React提供的一个Hook函数&#xff0c;用于在函数组件中添加和管理状态。它允许你在函数组件中定义一个可变的状态&#xff0c;并在组件的生命周期中对状态进行更新和访问。 使用useState可以避免使用类组件时需要定义和管理繁琐的constructor&#xff0c;state和se…

HOT83-打家劫舍

leetcode原题链接&#xff1a;打家劫舍 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系…

适配器模式(C++)

定义 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 在软件系统中&#xff0c;由于应用环境的变化&#xff0c;常常需要将“一些现存的对象 ”放在新的环境中应用&#xff0c;但是新环境要求…

【Golang】一文学完 Golang 基本语法

Golang 下载 安装包链接&#xff1a;https://share.weiyun.com/InsZoHHu IDE 下载&#xff1a;https://www.jetbrains.com/go/ 第一个 golang 程序 package mainimport "fmt"func main() {fmt.Println("hello golang") }每个可执行代码都必须包含 Pack…

Flutter 状态管理 Provider

状态管理必要性 Flutter基于声明式构建UI&#xff0c;原生则是命令式&#xff0c;状态管理是用于解决声明式开发带来的问题。 例&#xff1a;命令式的原生&#xff0c;数据更新需要拿到对应控件并更改其显示值&#xff1b;而声明式则需要更改数据值并通过setstate更新状态&am…

sql高频面试题-连续完成两个指定动作的用户统计

用户行为分析 业务背景 某购物APP最近上线了一个新功能&#xff0c;用户签到后可以跳转到大转盘抽奖&#xff0c;抽奖获得的奖金可以抵消购物的费用&#xff0c;以此来培养用户使用app的习惯。 数据表介绍 现有一张用户行为表action_log&#xff0c;主要字段如下&#xff0c…

springboot mongodb 配置多数据源

我想要的效果是&#xff0c;一个类统一管理多数据源&#xff0c;我传个参数进去&#xff0c;它就能返回我对应的mongotemplate 但是根据"mongbodb 多数据源"的关键词&#xff0c;找不到我想要的效果。 网上大多都是明确知道自己是几个数据源&#xff0c;然后每个数…

Styletron: 面向组件的样式设计工具包

styletron官网&#xff1a; styletron的GitHub链接&#xff1a; styletron-react 一. 介绍 Styletron是一个通用的component-oriented&#xff08;面向组件的&#xff09;样式工具。它属于css-in-js类别。Styletron可以很好地与React配合使用&#xff0c;但也可以与其他框架或…

docker复现nginx错误配置漏洞

目录 一、nginx环境搭建 1.1搭建步骤 二、docker复现Nginx配置漏洞 2.1安装docker 2.2复现过程 2.1CRLF(carriage return/line feed)注入漏洞 2.2.目录穿越 一、nginx环境搭建 1.1搭建步骤 1.先创建Nginx的目录并进入&#xff08;命令如下&#xff09; mkdir /soft &&…

Android Framework底层原理之WMS的启动流程

一 概述 今天&#xff0c;我们介绍 WindowManagerService&#xff08;后续简称 WMS&#xff09;的启动流程&#xff0c;WMS 是 Android 系统中&#xff0c;负责窗口显示的的服务。在 Android 中它也起着承上启下的作用。 如下图&#xff0c;就是《深入理解 Android》书籍中的…

033_小驰私房菜_Qcom平台8系列-Dump Jpeg Jpeg Exif信息修改

全网最具价值的Android Camera开发系列资料~ 作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~ 欢迎订阅,相信能扩展你的知识面,提升个人能力~ 平台:高通8系列 jpeg相关代码逻辑在camx/src/swl/jpeg/ 路径下 一、Dump Jpeg 有时我们想把hal这边拍照的jpe…

【C++】STL初识

1.STL的基本概念 2.vector存放内置数据类型 #include <iostream> using namespace std; #include <vector> #include <algorithm>void MyPrint(int val) {cout << val << endl; }void test01() {//创建vector容器对象&#xff0c;并且通过模板参…

Harbor企业镜像仓库部署(本地)

简述&#xff1a; Docker 官方镜像仓库是用于管理公共镜像的地方&#xff0c;大家可以在上面找到想要的镜像&#xff0c;也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网&#xff0c;或者不希望将自己的镜像放到互联网上&#xff0c;那么就需要用到 Docker Regis…

越南的区块链和NFT市场调研

越南的区块链和NFT市场调研 基本介绍 https://zh.wikipedia.org/wiki/%E8%B6%8A%E5%8D%97 语言文字&#xff1a; 越南语&#xff0c; 文字以国语字&#xff08;越南罗马字&#xff09;为主&#xff0c;汉喃文&#xff08;汉字&#xff09; 货币&#xff1a;越南盾 人口(2022…

Leetcode-每日一题【剑指 Offer 15. 二进制中1的个数】

题目 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为 汉明重量).&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&…

如何安全地移动WSL 2 到另一个驱动器

当您拥有小型 SSD 并且适用于 Linux 的 Windows 子系统 (WSL) 的大小呈指数增长时&#xff0c;这真的很痛苦。没有简单的方法将 WSL 安装移动到另一个驱动器。在这篇博客中&#xff0c;我将讨论如何通过小步解决这个问题。 1.打开具有管理员访问权限的 PowerShell或命令提示符…