当前位置: 首页 > news >正文

Web与HTTP

目录

DNS与域名

DNS解析的方式

过程

注册域名

html

名词解释

html的语法

web

web2.0

静态页面特点

动态页面

动态页面特点

http协议

工作流程

http的请求方式

get

post

状态码

常用状态码

通信套接字

套接字调用的端口


DNS与域名

网络是基于tcp/ip协议进行通信和连接的
应用层--传输层--网络层--数据链路层--物理层
ip地址是每台主机都有一个唯一的地址标识(固定的IP地址),用于区分用户和计算机,进行通信。
IP地址都是由32位二进制数组成的,不方便记忆,所以就衍生出域名
DNS解析就是把域名解析成ip地址,方便通信。

DNS解析的方式

1./etc/hosts
负责快速解析的文件,包含了ip与主机名之间的映射关系。如果没有DNS服务器的情况下,可以使用/etc/hosts文件来完成解析和映射。
2./etc/resolv.conf
DNS客户端的配置文件,设置DNS服务器的ip和域名。还包含了主机域名的搜索顺序。主要是域名解析服务器使用的配置文件。
3.修改网卡配置文件
ifcfg-ens33
生效顺序:1.hosts 2.网卡配置文件 3.resolv.conf

过程

DNS域名解析服务器由运营商来做。
域名解析服务器
1.保持和维护域名空间。
2.响应解析请求

解析端(客户端)
根域------顶级域------二级域------子域------主机名

注册域名

1.准备材料
2.域名注册网站注册、申请
3.正式使用

html

超文本标记语言,是一种规范的、标准的语言格式。网页文件本身就是一个文本文件,html就是通过标记的方式告诉浏览器如何显示文本当中的内容。html文件是一个文本文件,所有能够生成txt文件的工具,都可以进行编辑,修改之后的文件后缀名必须为html或htm

名词解释

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

网站

是由多个页面组成的,网页的结合体。主页:打开网站的之后出现的第一个页面就是网站的主页域名 浏览网页时输入的网址

http/https
用来传输页面的通信协议,https是加密的,都是一种基于tcp协议的通信协议,http默认端口为80,https默认端口为443

URL
万维网寻址系统,唯一标识
https://www.bilibili.com/完整的格式,是url
uri
https://www.bilibili.com/v/dance/?spm id from=333.1007.0.0
从/v/开始就是uri

超链接
超链接将网站中的不同页面连接起来
发布
将制作好的网页上传到服务器,供用户访问

html的语法

<head> 网页的内容描述</head>
<body>网页的内容</body>
</html>头标签中常用的标签
<title> 定义了文档的标题
<base> 定义了页面链接标签的默认链接地址
<link> 定义了一个文档和外部资源之间的关系
<meta> 定义了 HTML 文档中的元数据
<script> 定义了客户端的脚本文件
<style> 定义了 HTML 文档的样式文件内容中常用的标签
<table>  定义表格
<tr>    定义表格中的一行
<td>  定义表格当中某一行的一列
<img> 定义图片
<a>  超链接
<font> 定义字体

web

web2.0

注重用户交互,有了静态页面和动态页面
静态页面就是标准的html文件,扩展名都是.htm和.html,里面可以包含图片、文本、声音、动画。
是网站建设的基础,早期的网站都是静态页面,没有后台数据,不包含可交互的内容
更新起来比较麻烦,一般用与展示型网站

web3.0 交互、场景融合

静态页面特点

1.静态页面的URL是固定的,一般不包含?
2.页面一经发布,都是保存在网站的服务器上的
3.静态页面相对稳定,内容很少发生变化,容易被搜索引擎检索
4.没有数据库的支持,制作和维护的工作量比较大。网站的信息量如果太大,单纯使用静态页面比较困难
5.没有交互性,功能上受限很大
6.浏览速度很快,不需要连接数据库

动态页面

1.网页的url是不固定的,用户可以和后台数据进行交互
2.动态页面的网址中一般会包含特殊标记?
3.动态页面的语言: PHP JSP PYTHON RUBY TOMCAT

动态页面特点

1.交互性
2.自动更新
3.特效,每个人进入页面时,会有不同的效果

http协议

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

http是一种无状态的协议,本身不会对发送过的请求和响应的通信进行持久化处理(不会进行连接保持)。为了让http能够快速的大量的进行处理事务,提高效率
cookie 记录用户的登陆状态,跟踪统计用户访问网站的习惯,识别用户身份,保存用户信息

http1.1版本的http协议本身自带的连接保持功能,也叫做长连接
长连接:一次性获取页面文件的所有信息,不再需要分开处理请求。所以速度大大加快。
连接保持 keep-alive,在一个tcp连接上可以传送多个http的请求和响应,减少了建立和关闭连接的消耗和延迟,连接保持是有时间的,不是无限的,默认为60秒

连接资源占用 
长时间的保持会降低服务器的负载,如果是高并发,会使服务器耗尽资源
连接状态管理 
长连接需要维护连接状态。服务器需要跟踪每个连接的状态,增加服务器的负担。(集群的诞生)

https:加密通信协议,加密数据传输。加密过程涉及客户端和服务器之间进行密钥交换,确保只有合法的接受方,能够解密数据。
证书:https使用数字证书验证身份
加密解密会对访问速度有一定影响

工作流程

1.客户端和服务端进行tcp连接,三次握手建立连接
2.客户端发送http请求,服务端接收到http请求之后,响应客户端的请求
3.通过socket接口进行通信
4.响应到达客户端,浏览器解析,用户访问
5.访问结束后,四次挥手断开连接

http的请求方式

请求头
请求头当中包含请求体

请求体当中的内容
Accept 客户端可以接收的内容
Accept-Encoding 客户端可以接收的编码格式
Accept-Language 客户端支持的语言类型
Cache-Control 缓存时间,图片或者音频文件的缓存文件。指的是保留在本地的时间,下一次再访问图片,不需要再去服务端发起请求了,提高访问速度
Connection 告诉服务器处理请求连接。一般默认都是keep-alive,连接保持。

get

 http当中get就是用来向服务器发起请求
1.从指定服务器获取数据
2.get请求可以被缓存
3.get请求会保存在浏览器的记录在,cookie
4.get请求的长度是有限制的

post

post也是请求的一种,post是向后台发数据,服务器会添加数据,也可以改变服务器上的数据。
1.提交数据给服务器处理
2.post请求不能缓存
3.post请求也不会记录在浏览器的记录当中
4.请求体的长度也没有限制

状态码

状态码(响应码),由服务器进行提供。请求之后,服务器收到请求,会有一个响应,同时会反馈一个响应码

请求状态的响应码
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误 请求失败
5xx 500-505 服务端错误 响应失败

常用状态码

200 成功
301 请求的永久页面跳转
304 重定向到缓存
403 禁止访问
404 请求页面找不到
500 服务器内部错误
502 网关失效
503 服务不可用
504 网关请求超时

通信套接字

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

http协议当中socket的作用
1.客户机套接字定义了唯一的客户进程
2.服务端套接字定了义唯一的服务器进程

套接字调用的端口

socket  创建端口
bind 绑定ip和端口
listen 监听,等待链接
accept 接收请求
connect 请求连接建立
write 发送
read 接收
ESTABLISHED 连接已经建立,正在传输数据
close 关闭连接
 

相关文章:

Web与HTTP

目录 DNS与域名 DNS解析的方式 过程 注册域名 html 名词解释 html的语法 web web2.0 静态页面特点 动态页面 动态页面特点 http协议 工作流程 http的请求方式 get post 状态码 常用状态码 通信套接字 套接字调用的端口 DNS与域名 网络是基于tcp/ip协议进…...

算法刷题Day 56两个字符串的删除操作+编辑距离

Day 56 动态规划 583. 两个字符串的删除操作 class Solution { public:int minDistance(string word1, string word2) {int m word1.size(), n word2.size();vector<vector<int>> dp(m 1, vector<int>(n 1, 0));for (int i 0; i < m; i){dp[i][0] …...

Flutter中Dart语言常用知识

目录 1. 变量和数据类型2. 函数3. 类4. 异常处理5. 泛型6. 变量声明和类型推断&#xff1a;7. 函数定义&#xff1a;8. 类定义和实例化&#xff1a;9. 接口定义&#xff1a;10. 抽象类定义&#xff1a;11. 混合类型列表&#xff1a;12. Flutter 中的 UI 组件&#xff1a;13.Dar…...

11万多英藏对照词典英藏翻译ACCESS\EXCEL数据库

今天继续发一个藏文藏语相关的翻译数据库&#xff0c;即英藏对照词典&#xff0c;加上《5万6千多藏文词典解释ACCESS数据库》以及昨天发的《近13万汉藏对照词典汉藏翻译ACCESS\EXCEL数据库》藏文类的数据就算较全了。 截图下方有显示“共有记录数”&#xff0c;截图包含了表的所…...

浅谈C语言分支循环语句

为什么需要循环控制&#xff1f; 因为在日常生活中或者在程序所处理的问题中常常遇见需要重复处理的问题&#xff0c;用循环语句可以提高代码的运行效率&#xff0c;更快的解决日常生活中遇到的问题。 循环嵌套 就是传说中的套娃&#xff0c;不同的循环语句都可以互相嵌套。 …...

Spring Boot Starter 剖析与实践 | 京东云技术团队

引言 对于 Java 开发人员来说&#xff0c;Spring 框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年&#xff0c;Spring Boot 在传统 Spring 框架的基础上应运而生&#xff0c;不仅提供了 Spring 的全部功能&#xff0c;还使开发人员更加便捷地…...

技术能力提升-《系统架构设计师教程》

在最近的月度读书会上&#xff0c;国林哥分享了下对《系统架构设计教程》的一点见解&#xff0c;在技术管理摸爬滚打了多年&#xff0c;觉得这个认证还是有一定价值&#xff0c;希望对有兴趣了解这门认证考试的朋友有所帮助&#xff0c;起到抛砖引玉的作用。 国林哥从以下四个方…...

【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

解题思路 在 代码注释中&#xff01; 文章目录 73. 矩阵置零54. 螺旋矩阵48. 旋转图像240. 搜索二维矩阵 II 73. 矩阵置零 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {// 难点&#xff1a;原地算法// 直接复用 matrix 第一行 和 …...

Java 中为什么要把一个数模(10^9+7)

在计算机科学和编程中&#xff0c;经常会遇到需要对结果进行取模操作的情况。模运算是指将一个数除以另一个数&#xff0c;并取得余数的运算。 在 Java 中&#xff0c;常见的一个数取模的值是 (10^97)&#xff0c;即 1000000007。这个特定的数值经常在算法和数学计算中被使用&…...

RPC与REST有什么区别?

原文&#xff1a;RPC与REST有什么区别&#xff1f; 背景 好多开发的同学在工作中&#xff0c;经常分不清RPC和REST的区别&#xff0c;导致经常沟通不在一个层次上。甚至有些同学把这两个当成同一个东西。 RPC与REST的区别&#xff1f; 对比名称 rpc rest 备注 架构风格 RP…...

时间复杂度介绍及其计算

时间复杂度 1.算法效率 如何衡量一个算法的好坏呢&#xff1f;看这段代码&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }这是斐波那契数列的递归代码&#xff0c;非常简洁&#xff0c;那么这就一定说明它好吗&#xff1f;答案显而易…...

etcd实现大规模服务治理应用实战

导读&#xff1a;服务治理目前越来越被企业建设所重视&#xff0c;特别现在云原生&#xff0c;微服务等各种技术被更多的企业所应用&#xff0c;本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结&#xff0c;同时结合当前较火的分布式开源kv产品etcd&#xff0c;…...

目标检测中 anchor base和anchor free

目标检测中两种不同anchor的生成 趋势&#xff1a;anchor free越来越受到实时性检测的青睐&#xff0c;&#xff0c;&#xff0c;...

TypeC拓展设计方案|TypeC转HDMI设计方案|CS5261/CS5265芯片设计参数对比

集睿智远CS5261/CS5265都可以用于设计TypeC转HDMI方案&#xff0c;低成本TypeC扩展坞设计方案&#xff0c;而两者也有些差异&#xff1a;1.CS5261支持DP1.4输入&#xff0c;一个HDMI1.4输出&#xff0c;即HDMI输出为4K30HZ ;CS5265DP1.4到HDMI2.0转换芯片&#xff0c;即HDMI输出…...

SQL Developer中的Active Data Guard

这篇文章 Display Data Guard configuration in SQL Developer 中&#xff0c;用SQL Developer展示了多种ADG的拓扑。 今天自己也试了一下&#xff0c;还蛮简单的&#xff0c;其实最麻烦的部分在于搭建一个ADG环境。 假设我已有一个ADG环境&#xff0c;即最典型的环境&#x…...

谈谈FFT到底有何用

谈谈FFT到底有何用 FFT快速傅里叶变换是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法;但是,大家是否想过,为什么数字信号处理会有那么多FFT呢有人会说,为了分析信号的频谱;那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向…...

MATLAB | 如何绘制这样的描边散点图?

part.-1 前前言 最近略忙可能更新的内容会比较简单&#xff0c;见谅哇&#xff0c;今日更新内容&#xff1a; part.0 前言 看到gzhBYtools科研笔记(推荐大家可以去瞅瞅&#xff0c;有很多有意思的图形的R语言复现&#xff01;&#xff01;)做了这样一张图&#xff1a; 感觉很…...

偶数科技与白鲸开源完成兼容性认证

近日&#xff0c;偶数科技自主研发的云原生分布式数据库 OushuDB v5.0 完成了与白鲸开源集成调度工具 WhaleStudio v2.0 的兼容性相互认证测试。 测试结果显示&#xff0c;双方产品相互良好兼容&#xff0c;稳定运行、安全&#xff0c;同时可以满足性能需求&#xff0c;为企业级…...

【机器学习】Feature scaling and Learning Rate (Multi-variable)

Feature scaling and Learning Rate 1、数据集2、学习率2.1 α \alpha α 9.9e-72.2 α \alpha α 9e-72.3 α \alpha α 1e-7 3、特征缩放3.1 特征缩放的原因3.2 Z-score 归一化3.3 预测3.4 损失等值线 导入所需的库 import numpy as np np.set_printoptions(precision…...

windows编译ncnn

官方代码https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017 编译工具 visual studio 2017 一、编译protobuf 1、下载protobuf protobuf-3.11.2&#xff1a;https://github.com/google/protobuf/archive/v3.11…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...