1.体系结构
OSI七层体系机构:物理层 数据链路层 网络层 运输层 会话层 表示层 应用层
五层体系结构:物理层 数据链路层 网络层 传输层 应用层
数据传输的基本单位:传输层(TCP(报文段)UDP(用户数据包))、网络层(IP数据报或分组)、数据链路层(帧)、物理层(比特)
2.HTTP协议
1)HTTP/1.0和HTTP/1.1的区别
HTTP/1.0规定浏览器与服务器只保持短暂的连接,浏览器每次都需要与服务器建立一个TCP连接,服务器完成请求后,立即断开TCP连接,也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应过程与第一次被访问时是相同的。举例在收到的HTML文档后,文档中有10个图片,每个图片都要重新再次建立连接获取,所以网速较慢的时候,我们有时会看到先出现网页,每个图片再逐一出现。
这样做的好处:简化了服务器的设计,是服务器更容易支持大量并发的HTTP请求
这样做的缺点:每请求一个文档就要有两倍RTT的开销 ,详细过程:HTTP协议首先要和服务器建立TCP连接,这需要三次握手,当三次握手的前两部分经过一个RTT完成后,客户就把HTTP请求报文作为第三次握手的第三个报文的数据发送给万维网服务器,服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。每个请求文档花费两倍的RTT时间。
HTTP/1.1支持持续连接和流水线方式
持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这条持续的连接并不局限于传输同一个页面上链接的文档,而是只要文档在同一个服务器上就可以通过这条持续的连接传送。
流水线方式是客户在收到HTTP的响应报文之前就能接着发送新的请求报文。与之相对应的非流水线方式是客户在收到前一个响应后才能发送下一个请求。
2)用户访问某网站的全过程
点击“百度”的页面,其中URL是http://www.baidu.com。
(1)浏览器分析链接指向页面的URL
(2)浏览器向DNS请求解析百度服务器的IP地址
(3)域名系统DNS解析出百度服务器的IP地址
(4)浏览器与服务器建立TCP连接
(5)浏览器发出取文件命令
(6)百度服务器给出响应,把文件发送给浏览器
(7)释放TCP连接
(8)浏览器显示
3)HTTP的GET和POST
请求行中的方法:
状态行的状态码:
1XX:表示通知信息的,如请求收到了或者正在进行处理
2XX:表示成功,如接收或知道了
3XX:表示重定向,如要完成请求还必须采取进一步的行动
4XX:表示客户的差错,如请求中有错误的语法或者不能完成(404 ^-^)
5XX:表示服务器的差错,如服务器失效无法完成请求
关于Get和Post的区别,https://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
4)Cookie和Session
Cookie表示在HTTP服务器和客户端之间传递的状态信息,因为HTTP是无状态的,但一些万维网常常希望能够识别用户,所以万维网站点可以使用Cookie来跟踪用户。
Cookie的工作原理:用户张三浏览某个使用Cookie的网址时,该网站的服务器就为张三产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目,接着在给张三的HTTP响应报文中添加了叫做Set-cookie的首部行,如Set-cookie:123456,张三在收到这个响应时,其浏览器在它管理的Cookie文件中添加一行,包括服务器的主机名和Set-cookie后面的识别码(123456),当张三继续浏览这个网址时,没发送一个HTTP请求报文,浏览器就会从其Cookie文件中取出这个网站的是被骂,放到HTTP请求报文的Cookie首部行中,于是,这个网址就能够追踪用户张三在该网址的活动。
典型应用:服务器知道用户在什么时间访问了哪些页面,以及访问页面的顺序,如果用户是在网上购物,服务器可以为用户维护一个所购物品的列表,使得张三在结束这次购物时可以一起付费。同时网址服务器会根据用户过去的访问记录向他推荐商品。
3.TCP的三次握手
(1)三次握手的过程:TCP主机A向B发送连接报文段,主机B对收到的主机A的请求报文段后,向A发送确认,主机A再次对主机B的确认后,还要向B给出确认。
(2)为什么要三次握手,假设A发出的第一个连接请求报文段没有丢失,而是在某些网络结点长时间滞留了,以致延误到连接释放以后的某个时间才到达B,B收到这个失效的连接请求后,误认为A又发了一次新的连接请求,于是就向A发送确认报文段,同意建立连接,由于A并没有发送建立连接请求,因此不会向B发送数据,但B却以为连接建立了,并一直等待A发送数据。B的许多资源就浪费了。
4.ARP协议
ARP是解决同一局域网上的主机或路由器的IP地址和硬件地址的映射问题。
ARP解决这个问题的方法:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表。
主机A向主机B发送IP数据报,首先A会在其ARP高速缓存中查看有无B的IP地址,如果有就查出其对应的硬件地址,再把这个硬件地址写入MAC帧。如果没有,主机A就会自行运行ARP,ARP进程在本局域网上广播发送一个ARP请求分组,在本局域网中的所有主机上运行的ARP进程都会收到这个ARP请求分组, 主机B收到这个请求分组后,就会向A发送一个ARP响应分组,并写入自己的硬件地址。主机A收到主机B的ARP分组后,就在其ARP高速缓存中写入主机的IP地址与硬件地址的映射。
注意:ARP是解决同一个局域网上的主机或者路由器的IP地址和硬件地址的映射问题。ARP请求是通过广播传送的,而ARP响应是通过单播传送的。
5.HTTP和HTTPS的区别
http是超文本传输协议,它时使用明文的方式发送我们的内容(没有任何的加密),比如我们访问了一个网址,我们需要在这个网址输入密码、登录账号之类的操作,我们的账号和密码就会发送到网址的服务器上面,但如果有人在中途截取了我们的信息,那么我们的重要的信息就暴露了,为了解决Http在传输中不加密的问题,之后就增加了一个人SSL协议,这个协议提供网络连接的加密,如果我们访问一个https的网站,我们的电脑会先和服务器建立一个安全的连接通道,然后服务器会先发送一份网址的安全信息证书到我们的电脑,告诉我们的电脑,访问的服务器没有问题,确认了信息后,服务器就会生成一个加锁的箱子,但是这把锁有两把不一样的钥匙,一把时给我们的电脑的,一把是给服务器自己,然后服务器会把没有上锁的箱子和钥匙发给我们的电脑,我们把信息放在箱子里面然后用钥匙锁上,然后发给服务器,服务器用自己的钥匙打开箱子来保证信息的安全。
参考:
https://www.jianshu.com/p/650ad90bf563
https://www.bilibili.com/video/av12820479?from=search&seid=15667878026919071251
6.DNS域名系统和Hosts
域名方便人使用,但是机器习惯处理数字(IP地址),机器不是识别字母。
例如:把门我们把域名http://www.google。com输入到浏览器后,需要DNS来把http://google.com转换成谷歌搜索的IP地址。
Hosts:互联网早期,网络只有几台电脑,所以可以使用Hosts文件记录域名到IP的映射,后来网络越来越大,hosts就无法记录这么多映射关系了,所以现在都是使用DNS来完成从域名到IP地址的解析,但是Hosts文件仍然保存在操作系统中,Hosts文件的优先级高于DNS查询,操作系统会在Hosts文件中找域名对应的IP地址,没有找到它才会去问DNS服务器。
参考: https://www.cloudxns.net/Support/detail/id/1689.html