计算机网络——应用层

这篇博客深入探讨了应用层的网络技术,重点介绍了HTTP协议的工作原理、请求方法和响应头,包括GET、POST、HEAD等请求类型,以及Cookie、Session、缓存策略等内容。还涉及了DNS域名解析、DHCP协议、HTTPS协议及其加密模型,以及跨域问题的解决方案。同时,文章讨论了HTTP1.0、HTTP1.1和HTTP2.0之间的区别,强调了HTTP2.0的多路复用技术和性能提升。
摘要由CSDN通过智能技术生成

计算机网络——应用层

DNS

DNS,(Domain Name System)域名系统。
因为当我们访问一个网站的时候,其实访问的是一系列的IP地址+主机等一系列数字,记录十分麻烦,而且也记不住。

但其实我们访问各个网站的时候,你会发现根本不是一系列的数字,其实就是利用了DNS服务器将域名转换成IP地址和端口。

DNS域名解析过程

bupt.edu.cn
cn 顶级域名
edu 二级域名
bupt 三级域名

域名采用上述的树状结构,因此也有各种不同种类的域名服务器:本地域名服务器、根域名服务器、顶级域名服务器、权限域名服务器等。

域名到IP地址的解析就是由上面这些域名服务器程序共同合作完成的。

当浏览器需要一个域名的真实IP地址时,它会首先将域名发送给本地域名服务器,如果本地域名服务器有IP,则直接返回,否则,本地域名服务器就会向根域名服务器继续发出查询请求报文;如果根域名服务器没有IP,就会告知本地域名服务器,去哪个顶级域名服务器,然后本地域名服务器会访问相应的顶级域名服务器,如果还是没有,顶级域名服务器会告知本地域名服务器去哪个响应的权限域名服务器,直到找到IP。

本地域名服务器----》根域名服务器----》顶级域名服务器----》权限域名服务器

DHCP协议

DHCP,Dynamic Host Configoration Protocol,动态主机配置协议。一个局域网协议,并应用于UDP协议之上的应用层。

提出一个问题,IP地址的网络前缀是会随着局域网的不同而改变,但是我们的主机设备在更换局域网的时候并不需要配置任何设置,这就是DHCP协议在帮助我们

HTTP协议

HTTP协议,HyperText Transfer Protocol,超文本传输协议(同时也是明文传输)
超文本,超级文本,带有超链接的文本。

访问其他网站需要地址:http://<主机>:<端口>/<路径>

HTTP协议是可靠的传输协议,也就是依赖于TCP协议完成。

工作原理

HTTP协议采用了请求/响应模型:客户端向服务器发送一个请求报文(请求报文包含请求的方法、URL、协议版本、请求头部和请求数据);服务器以一个状态行作为响应(协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据)

1、一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接
2、通过TCP套接字,客户端向Web服务器发送一个文本的请求报文
3、Web服务器解析请求,定位请求资源。服务器响应,将资源复本写到TCP套接字,由客户端读取。
4、若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5、客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

🌰:在浏览器地址栏键入URL,按下回车之后会经历以下流程

1、浏览器首先会寻找缓存,查看缓存中是否有记录,缓存的查找记录为:浏览器缓存-》系统缓存-》路由器缓存,缓存中没有则查找系统的hosts文件中是否有记录
2、如果没有缓存,浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
3、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
4、浏览器发出(URL 中域名后面部分对应的文件)HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
5、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
6、页面渲染html文件,首先构建DOM树
7、CSS样式渲染CSSOM树
8、两棵树最终构建一个render树,之后渲染到真实DOM中
9、释放 TCP连接;(两种模式,keep-alive = true / false)

请求方法

GET、POST、PUT、DELETE

OPTIONS

OPTIONS请求方法的主要用途有两个:

1、获取服务器支持的HTTP请求方法;例如:Allow:GET, POST(只是举个例子)
2、用来检查服务器的性能,跨域请求时的预检

HEAD

HEAD方法允许客户端仅向服务器请求某个资源的响应头,而不要真正的下载该资源本身.服务器返回的响应头应该和客户端使用GET方法请求该资源时返回的请求头相同,比起GET方法,只是省略了响应体。

请求头

Accept 可接受响应数据类型
Referer HTTP请求来自浏览器的哪个URL
Accept-Encoding 告诉服务器能接受什么编码格式,包括字符编码,压缩形式(一般都是压缩形式)

例如:Accept-Encoding:gzip, deflate(这两种都是压缩格式)

Connection 客户端(浏览器)想要优先使用的连接类型(keep-alive)
Cookie 会话标识,后面会详细讲解
Host 服务器域名与端口号
If-None-Match 用来询问Etag是否过期
If-Modified-Since 用来判断Last-Modify是否过期

响应头

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值