Web基础:网络协议、HTTP、Web服务器

一、网络概念
1、终端(手机、PC等)
终端是相对于服务器而言的,连接在服务器上的东东。网络就把各个终端连接起来。
2、网络
按覆盖范围:
局域网(LAN,local):主要是路由器覆盖的家庭网络
城域网(MAN)
广域网(WAN,wide):常说的上外网,连接外面的Internet
3、发明网络历史
分布式,军方为了避免所以的服务通过一个服务器运转,所以发明了分布式的概念,通过许多服务器进行服务,在一个服务器挂掉之后,其他服务器能定上。首先,ARPAnet网络(其实也就是一种协议)军方网络,然后NSFnet(基于ARPAnet发展TCP/IP协议)崛起,称为Internet骨干网之一;最后开发了WWW,建立了Internet(所有人都可以连接进去的网络)。
二、网络协议
网络设备之间的交流也需要一种协议(也就是语言,人跟人交流用的一种约定的语言)。
网络协议有两种:
在这里插入图片描述
(1)OSI七层参考模型
物理层:例如网线与网线接口,
数据链路层:处理通过网线传过来的一个一个字节
网络层:确定IP地址,我们要将东西传给谁
传输层:例如要传一篇文章(数据包是分块(64K)),我们希望上面有人来控制知道这篇文章一共 分成了几块,把这几块拆分成几块,到时候在在目的地的传输层合起来。
注:这只是一种参考协议,但在实际应用的不一定完全按这种去做的,用的最多的就是TCP/IP协议。
(2)TCP/IP四层应用模型
Internet层:IP地址
传输层:做传输控制,传小视频2M,网络接口数据包一般比较小64K,所以需要一层程序把它分解开,到时传输到了就要合起来。
应用层:具体应用,上面的三层并不知道要干什么,只是知道把数据传过去就完事了。

每一层的重要协议:
在这里插入图片描述
Q:为什么叫TCP/IP协议呢?
A:其实就是找了各个层之中比较重要的两个协议命名,也就是网络层的IP协议和传输层的TCP协议啦
应用:TCP/IP协议传输应用于QQ怎么运行的?
在这里插入图片描述
如上图所示,QQ1发送“你好”到QQ2
首先,在应用层上(也就是QQ这个软件)(牵涉到socket编程),"你好"前面加了qq,也就是qq这个软件会加一些格式,然后通过调用传输层的TCP,TCP又会加一些自己的控制,TCP要知道要把数据传递给谁(IP地址),所以就调用网络层的IP协议,将IP地址加上去,数据变得越来越大了。之后,到了数据链路层(就是比较偏物理的地方了),因为分为一块一块发的,所以要加上帧头帧尾,其实有点像链表当中的prev和next指针,为了在收到的QQ2能根据帧头帧尾把数据包组合起来。然后传递给网卡,路由器,之后传到QQ2终端中的网卡,之后就是根据所加的东西进行识别(解体),最后QQ2收到“你好”这个消息。

三、IP(Internet Protocol)协议
IP相当于网络中的一个节点,类似于地址。
同一个网络中,IP地址具有唯一性,也就是说在同一个家庭的局域网中,分配的ip地址是不一样的,但是在广域网中,例如南京的网络和北京的网络这是两个不同的网络,所以ip可以一样,可以用南京的xxx.xxx.xxx.xxx地址和北京的xxx.xxx.xxx.xxx地址,这样的网路是不会冲突的。
在这里插入图片描述
IPv4就是只有4bytes表示网络地址,表示的地址数量有限,然后就推出了IPv6地址,用16字节,比较阔气,能容纳数量级增长的IP地址。
命令:ipconfig
在这里插入图片描述
本地连接的ip也就是我们局域网路由器分配的本机的ip地址,如果通过宽带连接会有一个宽带连接ip地址,是用于连接广域网或城域网的一个ip地址。

Q1:我们通过网络传送消息,从一个终端到另一个终端,有很多条道路,所以怎么进行规划?
A1:路由,从哪些路走过去的,我想去哪里(目标地址),那就先去哪个关口(gateway)。
相关命令:netstat、tracert、iptables、route
Q2:如何获得ip?
A2:IP分为
(1)静态IP:自己设置好的ip地址
(2)动态IP(DHCP):例如无线网、手机上网,路由器会动态的给终端分配一个ip地址

四、传输层协议(TCP/UDP协议)
主要负责传输数据的控制(分成块)
TCP比较靠谱,UDP比较快一点。
(1)TCP(建立连接,可靠性传输,连接终止)
比较著名的就是三次握手建立连接:
在这里插入图片描述
对话:
客服端:“我想给你发消息。”
服务器:“我可以了,你发吧。”
客户端:“那我发了啊。”
经过三次握手时候,连接就建立了,这样就能接下来一个包一个包的发了。
(2)UDP(用户数据报协议)
user Datagram Protocol
一种非连接,不可靠的传输方式(也就是没有三次握手过程,当我们发信的时候,我们已经知道地址了,直接给他发就完事了),但效率高,速度快,比较适合音频和视频。
TCP比较礼貌一些,UDP比较直接一点。
五、应用层协议(DNS、DHCP)
我们去上网的时候,输入“WWW.baidu.com”,但是没有输入IP地址,而我们知道网络层是通过IP地址去传输的,所以引出DNS(Domain Name System)域名解析系统,记ip太麻烦了,也是就给ip取名字,有一个域名服务器就是干这个事情的。所以上面输入域名之后,就会根据你的网络去相应的域名服务器去解析这个域名变成ip,例如,我们直接输入168.192.1.1就能访问一个路由器设置网页。
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议
在这里插入图片描述
六、应用层协议(FTP)
用来传输文件的协议
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
七、应用层协议(HTTP协议,web开发中极其重要)
Q1:当我们敲“www.baidu.com”时,发生了什么?
A1:
在这里插入图片描述
请求动词:GET(向服务器要东西)
请求标头(header):发给服务器的东西
补充:端口的概念:我们都有一个电脑,但是电脑上有许多不同的程序(QQ,微信,浏览器),其实也就是进程啦,而这些程序都是一个ip地址,所有每个程序都有一个端口,给程序一个号码(也就是PID)。
默认情况下,是往80端口发请求的,也就是输入“www.baidu.com”首先先把请求发送给百度服务器当中的80端口。
1、request(Http请求)
请求行:
request Header:请求头主机、接受什么、语言、压缩等等。
空行
具体的一些传给服务器的参数(多个参数用&符号隔开)
在这里插入图片描述
2、请求参数
我们在百度一下中搜“hello”,在url中会发现hello的一个参数。
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=hello&fenlei=256&rsv_pq=c0d906ab0000510c&rsv_t=58bbmq1AyWjuRm%2FXHQeZIue1e2IapvKQmcLt1C4m4EwPHUIdxMMYFdo%2B7hQ&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=6&rsv_sug1=4&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&prefixsug=hello&rsp=0&inputT=3938&rsv_sug4=4602
看到这里有很多&号,后面是用&隔开的一对一对的键值参数。传参数的方式
在这里插入图片描述

取决于动词:GET和POST
GET用URL传参数,POST用Body传,其实最大的区别就是安全性,前者可见所以安全性更低,后者不可见安全性较高。还有一个就是前者是向服务器发送请求,不改变服务器的资源,相当于only read,后者会改变服务器上的资源,例如网站上注册一个用户,就会在服务器中保存用户信息,也就改变了服务器的资源,从这里也能体检保存的注册用户账号密码说明安全性肯定要求跟高啦。
3、请求次数
Q:为什么输入域名会向服务器发送多次请求?
A:当我们发现网页有点慢,可能就是网页设计中资源太多了,这是常用的优化网页的妙招。
取决于HTML中有没有使用其他资源,如果只有文本文件那可能只要请求一次就OK了,但是如果有许多的文本,图片等,可能每个图片就要请求一次。
4、HTTP缓存
Q:接请求,在第一次请求的时候可能需要15次,因为里面有许多图片,但是在第二次请求的时候只要3次这是为什么呢?
A:因为缓存(cookie),应为第一次请求过了,缓存下来了。但是需要知道服务器是有权限的,有的资源允许HTTP缓存,有的不允许缓存。例如:cache :max-age = 0,private,must-revaildate也就是网页不让缓存,万一我网站变了怎么办呐,而图片一般而言是不会变的,所以在服务器响应中允许缓存。
要点:①HTML最好不要缓存
②图片等可以缓存
5、HTTP动词
上面讲了GET和POST动词
在这里插入图片描述
GET:获取服务器中的东西。但是不会对服务其中数据产生影响(safe就是不会影响的意思),Idempotent表示幂等性多次请求都能显示一样,但是我们注册一次又不能在同样内容注册了也就是没有幂等性,cacheable就是可以缓存的意思。
POST:支付一次100,再支付一次也是允许的,也就是没有幂等性。
6、GET和POST区别
(1)GET是从服务器端获取数据,POST是向服务器端传送数据(邮局一样传)。(本质区别)
(2)GET传参数在URL里面,POST在Body(也就是内容里面,所以POST更安全一些)
(3)GET传送的数据比较小,不能大于2kb,因为URL不能太长。POST传送数据大,一般默认不受限制,但是服务器会有限制。
(4)POST较GET更安全。
小结:从安全性上,建议机密信息用POST数据提交方式。在做数据查询,建议用GET方式,在做数据添加、修改或删除,建议用POST方式。
7、如何发送POST请求
在浏览器中输入网址就默认向服务器发了GET请求。
Q:POST请求怎么发呢?
A:
在这里插入图片描述
8、HTTP的相应(Response)
在这里插入图片描述
在这里插入图片描述
第一行:状态行
在这里插入图片描述
在这里插入图片描述
9、HTTP的状态码
在这里插入图片描述
五、Web服务器
1、web服务器的作用
本地电脑重设计了一个HTML网页文件,但是这个文件别的电脑打入地址并不能访问,所以现在这个文件是一个网页,不是网站。
Q:如何把一个网页变成网站呢?
A:web服务器
(1)Web服务器是一个服务器软件(注意他是一个软件)
(2)我们可以吧静态网页部署到web服务器上
(3)web服务器通常只能运行静态网页
(4)应用服务器(也是一个软件)可以运营动态页面
(5)web服务器和应用服务器通常会一起使用
在这里插入图片描述
在这里插入图片描述
注意这里Web服务器和应用服务器都是一个软件,可以部署到一个电脑上。
先请求web服务器,若是静态页面则返回静态页面,否则向应用服务器发送请求。
2、常用的Web服务器
Apache、IIS
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值