实习日记07/27 day14 理解JavaWeb--理解Web请求过程

2021/7/28 17:36:23

本文主要是介绍实习日记07/27 day14 理解JavaWeb--理解Web请求过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

理解Web请求过程

首先是整体概念

在这里插入图片描述
在这里插入图片描述
以上就是发送一次HTTP请求所经历的所有的过程。

重点概念–两解析一机制

1. HTTP解析

HTTP的定义:

HTTP,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法,HTTP是一种基于"请求与响应"模式的、无状态的应用层协议。HTTP协议采用URL作为定位网络资源的的标识符。
http://host[:post][path]
host:合法的Internet主机域名或ip地址
port:端口号,缺省为80
path:请求资源的路径
例如 :
以localhost:8899/download
我们在使用SpringBoot搭建项目的时候,设置的Conrtoller中使用@RequestMapping注解来规定初步的请求映射,并在方法中返回download页面。
在这里插入图片描述
想要理解HTTP,最重要的是要理解HTTP中的header,
在这里插入图片描述
可以在Chrome中F12查看Header信息
小知识点:当你遇到错误,或是想更新页面信息,这时候采用ctrl+f5刷新,其实通过在header中加入增加no-cache,避免了浏览器加载缓存,从而更新了浏览器的数据。

HTTP的各个版本

主要讲讲0.9、1.0、1.1和2.0的主要区别
首先是HTTP0.9,比较的简单仅支持请求方式GET,并且仅能请求访问HTML格式的资源。
其次是1.0,最早使用在1996年在0.9版本上做了进步,增加了请求方式POST和HEAD;不再局限于0.9版本的HTML格式,根据Content-Type可以支持多种数据格式,即MIME多用途互联网邮件扩展,例如text/html、image/jpeg等;同时也开始支持cache,就是当客户端在规定时间内访问统一网站,直接访问cache即可。再次,HTTP请求和回应的格式也变了。除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。其他的新增功能还包括状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等。但是1.0版本的工作方式是每次TCP连接只能发送一个请求,当服务器响应后就会关闭这次连接,下一个请求需要再次建立TCP连接,就是不支持keepalive。TCP连接的新建成本很高,因为需要客户端和服务器三次握手,并且开始时发送速率较慢(slow start)。所以,HTTP 1.0版本的性能比较差。随着网页加载的外部资源越来越多,这个问题就愈发突出了。
相比于1.0,1.1在以下几点有区别:

  1. 缓存处理
  2. 带宽优化和网络连接的使用上做出改进
  3. 错误通知的管理
  4. Host头处理
  5. 长连接

而2.0的变化主要体现在:

  1. 新的二进制格式
  2. 多路复用
  3. header压缩
  4. 服务端推送等方面

2. DNS解析

将域名解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴。

DNS的解析过程

首先当我们输入www.baidu.com的时候,浏览区会检查浏览器缓存中是否存在该DNS解析,如果没有电脑的DNS会检查host文件中有无存储该DNS的解析,我们应该都遇到过GitHub连接缓慢的问题,修改的就是电脑上存储的DNS解析 etc/host。如果还是无法访问就要连接本区域的域名服务器去解决。我们把本地的DNS解析器称为LDNS,一般在小区附近,百分之八十的域名解析到这已经结束,但是如果还没有完成,就要到RootDNS解析器中去处理,最终在层层返回将域名解析结果发送给我们。

我们可以使用nslookup命令查看域名解析结果

几种域名解析方式

  1. A记录,A代表的是Address,用来指定域名对应的IP地址
  2. MX记录,表示的是Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server
  3. CNAME 全称是别名解析,所谓的别名解析就是可以将一个域名设置一个或者多个别名
  4. NS记录为某个为某个域名制定DNS解析服务器
  5. TXT记录,为某个主机名或域名设置说明

3. CDN工作机制

CDN也就是内容分布网络,它是构建在现有的Internet上的一种先进的流量分配网络。,可以使我们就近获取所需的内容,提高我们访问网站的速度。
CDN=镜像+缓存+整体负载均衡

CDN要达到下面的三个目标:

  1. 可扩展
  2. 安全性
  3. 可靠性


这篇关于实习日记07/27 day14 理解JavaWeb--理解Web请求过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程