Web基础与HTTP协议

域名
DNS与域名:
网络是基于tcp/ip协议进行通信和连接的
tcp/ip协议是五层协议:应用层–传输层—网络层----数据链路层----物理层
每一台主机都有一个唯一的地址标识(固定的ip地址,用于区分用户和计算机。
ip地址:由32位二进制组成的,不方便记忆。随后就有了域名。又因为网络通信是靠IP地址进行通信的,域名不能直接通信,因此有了dns解析。
dns解析的主要作用:就是将域名解析成ip地址,方便进行通信。
dns解析的方式:
1 /etc/hosts:负责快速解析的文件,包含了ip与主机名之间的映射关系。如果没有dns服务器的情况下,可以使用/etc/hosts文件来完成解析和映射。

[root@my1 test]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

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

[root@my1 test]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 218.2.135.1  #dns1
nameserver 114.114.114.114 #dns2

etc/resolv.conf的源头在:etc/sysconfig/network-scripts/ifcfg-ens33
3.修改网卡配置文件---->etc/sysconfig/network-scripts/ifcfg-ens33
生效顺序:1.host----2.网卡配置文件----3.resolv.conf
现在的dns域名解析服务器,都由运营商来做。
dns域名解析服务器的作用:
1.保持和维护域名空间。
2.响应解析请求。(解析端也就是客户端)
dns域名分层层次:根域-----顶级域----二级域----子域 —主机名
如何注册域名:
1.准备申请材料-----查找域名注册网站-----注册申请---->正式使用
HTML
html:超文本标记语言,是一种规范的,标准的语言格式。网页文件本身就是一个文本文件,html就是通过标记的方式,告诉浏览器如何显示文本当中的内容。html文件是一个文本文件,所有可以生成txt的文件工具,都可以进行编辑,修改之后的文件后缀名为:.html或.htm
网页:纯文本格式的文件,用html语言来进行编写的。再用浏览器翻译成页面的形式显示出来,
网站:是由多个页面组成的,也就是多个网页组成的结合体。
主页:打开网站后出现的第一个页面就是网站的主页。
域名:浏览网页时输入的网址。
协议:http/https (用来传输页面的通信协议),https就是加密的,http/https都是通信协议,基于tcp协议,端口号http默认是80,https默认是:443
URL:万维网寻址系统,唯一标识。即:https://www.xxx.com
uri:在这里插入图片描述
超链接:超链接将网站中的不同页面连接起来。
发布:将制作好的页面上传到服务器,供用户访问。

Web
Web:全球广域网,也成为万维网,是一种分布式图形信息系统。建立在internet上的一种网络服务。
Web1.0 和 Web2.0
Web1.0是单向的,以编辑为特征,网站提供给用户的内容是编辑处理后,然会用户阅读网站提供的内容。
目前web2.0是主流,更注重交互作用。加强了网站与用户的互动。所以产生了静态页面和动态页面。
静态页面就是标准的html文件。
扩展名一般都是.html或.htm
里面可以包含图片,文本,声音 动画。是网站建设的基础,早期的网站都是静态页面,没有后台数据,不包含可交互的内容。相对来说更新起来比较麻烦,一般用于展示型网站。
静态页面(web1.0)的特点:
1.静态页面的url是固定的。一般不包含?
2.页面一经发布,都是保存在网站服务器上的
3.静态页面相对稳定,内容很少发生变化,容易被搜索引擎检索。
4.没有数据库的支持,制作和维护的工作量都比较大。网站的信息量如果太大,单纯使用静态页面就会比较困难。
5.没有交互性,只能看功能上受限很大。
6.浏览速度很快,因为不需要连接后端数据库。
动态页面(web2.0):
1.网页url是不固定的,用户可以和后台数据进行交互。
2.动态页面的网址中一般会包含一个特殊标记 —> ?
3.动态页面的语言:PHP JSP PYTHON RUBY TOMCAT(JAVA)
动态页面的特点:
1.交互性
2.自动更新
3.特效,每个人进入页面的时候会有不同的效果。
总结:静态页面就是 —>看
动态页面:------>交互
web3.0 场景融合

http协议:
httpd是apache服务在linux中的程序名
http协议:超文本传输协议。是互联网上应用最广泛的网络协议之一。基于tcp协议的应用层的传输协议。面向用户。
总结:就是客户端和服务端之间进行数据传输的一种规则。
基本工作流程:
1.客户端和服务端进行tcp连接。(三次握手—建立连接)
2.客户端发送http请求,服务端接收到http请求之后,响应客户端的请求。
3.通过socket接口,通过端口进行通信。
4,响应到达客户端,解析的过程(浏览器解析),用户查看,使用,访问。
5.访问,使用。查看。结束之后,断开连接(—>四次挥手)
http是一种无状态的协议,本身不会对发送过的请求和响应的通信进行持久化处理。连接保持。为了让http能够快速的大量的进行处理事务,提高效率。
连接保持是需要的。
cookie:记录用户的登录状态,跟踪统计用户访问网站的习惯,识别用户身份,保存用户信息。这个是服务器留在用户计算机上的小文件。
从http1.1 开始自带http协议的连接保持功能,也叫长连接。

长连接作用:
作用一:一次性获取页面文件的所有信息,不在需要分开处理请求,所以速度大大加快,也就是并行处理。
作用二:保持连接:keep-alive,在tcp连接上,可以传送多个http的请求和响应。减少了建立和关闭连接的消耗和延迟。连接保持是有时间限制的,不是无限的,默认是开启的,默认60s
连接资源占用:长时间保持占用,会降低服务器的负载,如果是高并发,会使服务器耗尽资源。
连接状态管理:长连接需要维护连接状态,增加服务器的负担。(随后就有了集群的诞生)
https:加密通信协议,加密数据传输。加密过程涉及客户端和服务器之间进行密钥交换,确保只有合法的接收方,才可以解密数据(即证书)
证书:https使用数字证书验证身份
https应用:电子商务,银行网站
加密解密会对访问速度有一定影响。
http的请求方式:
1.请求头
请求头当中包含请求体。
请求体当中的内容:
Accept:客户端可以接收的数据类型
Accept-Encoding:客户端可以接收的编码格式
Accept-Language:客户端可以支持的语言类型
Cache-Control:缓存使劲按,图片或者音频文件的缓存时间(缓存指的是保留在本地的时间,即下次再访问图片,不需要再向服务端发起请求,从而提高访问速度)
Connection:告诉服务器处理请求连接。默认都是keep-alive,保持连接,默认65s
keep-alive:告诉服务器,保持一段时间,不要直接关闭连接
请求方式:
get:向服务器发起请求,http协议中的get,就是请求
post:也是请求的一种,post是向后台发数据。服务器会添加数据,也可以改变服务器上的数据。
get方法特点:(获取)
1.从指定服务器获取数据
2.get请求是可以被缓存
3.get请求会保存在浏览器的记录中,cookie
4.get请求的长度,是有限制的。
post方法的特点:(发送)
也是请求的一种,提交数据给服务器处理。
1.post请求不能缓存
2.post请求也不会记录在浏览器的记录当中
3.请求体的长度也没有限制

Status 状态码,响应码:由服务器来进行提供的
请求之后,服务器收到请求,会有一个回应,响应,同时会反馈一个响应码。
请求状态的响应码:
1xx
2xx
3xx
4xx
5xx
100-101 信息提示
200-206 —>成功,只要状态码是200,统统是请求响应成功。
300-305—>重定向
400-415—>客户端错误 (指的是请求失败,获取资源失败)
500-505—>服务端错误(响应失败)
总结:2xx 3xx一般都是正确的;
4xx:客户端错误 ,5xx:服务端错误。
常见的状态码:
200:成功 ok
301:请求的永久页面跳转
304:重定向到缓存(访问的是缓存)
403:禁止访问 (权限不够)
404:请求页面找不到 (页面不存在)
500:服务器内部错误
502:网关失效
503:服务不可用
504:网关请求超时
socket (通信套接字):实现不同主机进行通信和数据交换,进程间传输的标志:ip ,端口
在http协议当中ocket的作用是:
1.客户端套接字:定义了唯一的客户进程。
2.服务端套接字:定义了一个唯一的服务器进程。
套接字调用的
socket():创建端口
bind():绑定ip和端口
listen():监听,等待连接
accept():接收请求
connect():请求连接建立
wirte():发送
read():接收
ESTABLISHED:连接已经建立,正在传输数据
close()关闭连接

微信 qq底层聊天:

服务端:nc -l 端口号

nc -l 8888

客户端 nc 服务端ip 端口号

 nc 20.0.0.101 8888

客户端:
在这里插入图片描述
服务端:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值