web基础与http协议

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

ip地址:每一台主机都是有一个唯一的地址标识(固定的ip地址)

作用:1、区分用户和计算机  2、通信

ip地址的问题:由32位二进制数组成,不方便记忆,从而引申出域名(www.baidu.com)

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

dns解析的方式:1、/ect/hosts  负责快速解析的文件,包含ip与主机名之间的映射关系

如果没有dns服务器的情况下,可以使用/etc/hosts来完成解析和映射

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

3、修改网卡配置文件ifcfg-ens33     生效顺序:1、hosts  2、网卡配置文件  3、resolv.conf

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

域名解析服务器的作用:1、保持和维护域名空间

2、响应解析请求,解析端就是客户端

根域→顶级域→二级域→子域→主机名

html:超文本标记语言,是一种规范的,标准的语言格式。网页文件本身就是一个文本文件

html就是通过标记的方式,告诉浏览器如何显示文本当中的内容,html文件是一个文本文件

所有能够生成txt文件的工具都可以进行编辑,修改之后的文件后缀名:.html或.htm

网页:就是一个纯文本格式的文件,用html语言编写,再用浏览器翻译成页面的形式显示出来

网站:是由多个页面组成的,网页的结合体    主页:打开网站后出现的第一个页面

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

协议:http或https,用来传输网页的通信协议,https就是加密的一种通信协议

基于tcp协议     端口号:http默认的是80,https默认的是443

URL:万维网寻址系统,唯一标识,完整的格式为:https://www.baidu.com

uri:完整格式 https://www.baidu.com/v/.......    从v开始就是uri,整个完整的就是URL

uri包含在URL中     uri:网站中请求的分页面

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

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

web2.0 用户交互,静态页面和动态页面

静态页面就是标准的html文件  扩展命就是.html   .htm   里面可以包含图片文本声音动画

是网站建设的基础,早期的网站都是静态页面,没有后台数据,不包含可交互的内容

更新起来比较麻烦,一般用于展示性网站。

静态页面特点:1、固定的URL,一般不包含问号

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

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

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

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

6、浏览速度快,因为不需要连接后端数据库

动态页面:1、网页url是不固定的,用户可以和后端数据进行交互

2、动态页面的网址中一般会包含一个特殊标记 ......?

3、动态页面的语言  PHP  JSP  PYTHON  RUBY  TOMCAT(JAVA)

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

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

httpd服务:apache服务名,是apache服务在程序中的名字

工作流程:1、客户端和服务端进行tcp连接(三次握手建立连接)

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

3、socket接口,通过端口进行通信

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

5、访问,使用,查看,结束之后,断开连接(四次挥手)

http是一种无状态的协议,本身不会对发送过的请求和响应的通信进行持久化处理

连接保持,为了让http能够快速的大量的进行处理事物,提高效率

连接保持是需要的

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

cookie是服务器留在计算机上的小文件

http本身自带的一种连接保持功能:htto1.1自带连接保持功能也叫长连接

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

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

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

连接状态管理:长连接需要维护连接状态,服务器需要跟踪每个连接的状态,增加服务器的负担

(集群为减缓负担而诞生)  http1.1  https:加密通讯协议,主要加密数据传输

http的请求方式:1、请求头,当中包含请求体

2、请求体当中的内容:Accept:客户端可以接收的数据类型

Accept-Encoding:客户端可以接受的编码格式

Accept-Language:客户端可以支持的语言类型

Cache-Control:缓存时间,图片或音频文件的缓存时间

缓存指的是保留在本地的时间,下一次在访问图片,不需要再去服务端发起请求,提高访问速度

Connection:告诉服务器处理请求连接,一般默认都是keep-alive连接保持,65秒

keep-alive:告诉服务器,别急着关闭,保持一段时间

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

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

get方法:1、从指定服务器获取数据

2、get请求是可以被缓存

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

4、get请求的长度是有限制的

获取数据

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

1、post请求不能缓存

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

3、请求体的长度也没有限制

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

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

请求状态的响应码:(面试题)

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:网关请求超时

重点二

通信套接字:socket    实现不同主机进行通信和数据交换

进程间传输的标志:ip和端口

http协议中socket的作用  1、客户机套接字:定义唯一的客户进程

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

socket()创建端口进行通信

bind()绑定ip和端口

listen()监听,等待连接

accept()接受请求

connect()请求连接建立

write()发送

read()接收

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

close()关闭连接

使用工具nc来模拟实验

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

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

相关文章

CentOS 7虚拟机 虚拟机安装安装增强VBox_GAs_6.1.22失败:modprobe vboxguest failed

我安装的CentOS 在安装增强工具的时候报错: 查阅资料后 ,解决方法: 1、更新kernel内核版本: yum update kernel -y //安装kernel-devel和gcc编译工具链yum install -y kernel-devel gcc//更新kernel和kernel-devel到最新版本yum -y upgrade …

就业并想要长期发展选数字后端还是ic验证?

“就业并想要长期发展选数字后端还是ic验证?” 这是知乎上的一个热点问题,浏览量达到了13,183。看来有不少同学对这个问题感到疑惑。之前更新了数字后端&数字验证的诸多文章,从学习到职业发展,都写过,唯一没有做过…

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:https://github.com/google/protobuf/archive/v3.11…

指针初阶(超详解)

指针初阶 1.指针是什么2.指针和指针类型2.1 指针-整数2.2 指针的解引用 3.野指针3.1 野指针成因3.2如何避免野指针 4.指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 5.指针和数组6.二级指针7.指针数组 1.指针是什么 指针是什么? 指针理解的2个要点&#xf…

Class.forName和ClassLoader区别

【反射中,Class.forName和ClassLoader区别】_lfsun666的博客-CSDN博客

docker启动报错:Cannot connect to the Docker daemon

Couldn’t connect to Docker daemon at httpdocker://localunixsocket - is it running? 解决方式:正确的是将当前用户加入docker组解决步骤 sudo groupadd docker #添加docker用户组 sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中 ne…

SDWAN的技术背景及其发展历程

一、SDWAN(软件定义广域网)技术的背景 传统广域网(WAN)主要基于专线连接,例如MPLS(多协议标签交换)网络,用于连接企业的分支机构和总部。这些传统的WAN网络在过去是为了满足数据中心…

BladeX框架开源-工作-笔记-Docker部署-Jenkins配置

BladeX框架开源-工作-笔记-Docker部署-Jenkins配置 文章目录 BladeX框架开源-工作-笔记-Docker部署-Jenkins配置第一章-概要-BladeX框架简介与git地址第二章-BladeX框架前后端项目Docker部署与DockerFile配置文件2.1-开始部署阶段,默认服务器上面已有Nacos服务2.2-采…

maven下载按照及初次使用相关配置

maven下载按照及初次使用相关配置 一、下载 与安装 依赖Java,需要配置JAVA_HOME设置MAVEN自身的运行环境,需要配置MAVEN_HOME测试环境配置结果 MVN测试成功!!! 二、本地仓库配置 Maven启动后,会自动保…

基于Amoeba读写分离(三十六)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 今天要学的是基于Amoeba读写分离。Amoeba是一个开源的关系型数据库管理系统&#xf…

Spark性能调优之数据序列化

前言 在使用Spark进行数据开发的时候,避不开的一个问题就是性能调优。网上一搜一大堆所谓的调优策略很多作者自己都不知所云,导致读者看了后只会更加困惑。我们在研究一个技术的时候第一手资料永远都请参考官网,官网对性能优化不一定是最全甚至最优,但是可以解决大部分问题…

六、初始化和清理(4)

本章概要 数组的初始化 动态数组创建可变参数列表 枚举类型 数组初始化 数组是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。数组是通过方括号下标操作符 [] 来定义和使用的。要定义一个数组引用,只需要在类型名加上方括号&#xf…

NestJS 的 拦截器 学习

拦截器会用到RxJs,所以在学习拦截器之前可以先了解一下它。 拦截器是使用Injectable()装饰器装饰的类并且实现了接口NestInterceptor。 拦截器受到 AOP(面向切面编程)技术的启发,具有如下的功能: 在方法执行之前/之后绑定额外的逻辑转换函…

express学习笔记2 - 三大件概念

中间件 中间件是一个函数,在请求和响应周期中被顺序调用(WARNING:提示:中间件需要在响应结束前被调用) 路由 应用如何响应请求的一种规则 响应 / 路径的 get 请求: app.get(/, function(req, res) {res…

以beam search为例,详解transformers中generate方法(上)

以beam search为例,详解transformers中generate方法(上) 1. generate的代码位置2. GenerationMixin概览3. generate签名4. generate过程4.1 读取并更新generation config4.2 补充没有传入的参数4.3 定义模型输入4.4 定义模型的其他参数4.5 对…

Mysql存储过程基本语法

目录 存储过程MYSQL基础语法游标(作用范围存储过程)事务(Demo)其他操作Demo 存储过程 MYSQL 基础语法 #创建存储过程 #参数格式 #in输入参数 out输出参数 inout既可以输入也可以输出 create or replace procedure 存储过程名…

react常用知识点

React是一个用于构建用户界面的JavaScript库。以下是React常用的知识点: 组件:React将用户界面分解成小而独立的组件,每个组件都有自己的状态和属性,并且可以通过组合这些组件来构建复杂的用户界面。 // 函数组件示例 function We…

torch.load 报错 ModuleNotFoundError 或 AttributeError

Python 3.11.3 (main, Apr 7 2023, 19:25:52) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin Type "help", "copyright", "credits" or "license" for more information.正常情况下,我们会使用 torch.save 保存模型的 …

向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录

1、注册https://issues.sonatype.org/账号 下面就代表注册好了,同时提交的工单也通过了 2、这里主要是goupId 需要进行认证,需要到域名注册商近一个txt的解析,以便确保这个是你的 通过下面来验证你的域名信息,这里主要是上面的工…

git命令分类合集

配置 git config --global user.name <name>&#xff1a;设置全局用户名 git config --global user.email <email>&#xff1a;设置全局用户邮箱 git config --global core.editor <editor>&#xff1a;设置全局文本编辑器创建与克隆仓库 git init&#xf…