【计算机网络常见问题二】:浏览器中输入网址后运行的过程、HTTP 和 HTTPS 的区别、HTTP请求报文与响应报文、HTTP方法、状态码、HTTP无状态、长连接和短连接、IP地址分类、重定向和转发

一、在浏览器中输入url地址,那么显示主页的过程是什么?(即打开一个网页,整个过程会使用哪些协议?)

1.浏览器查找域名的IP地址

DNS查找过程为:
(1)检查浏览器缓存、检查本地hosts文件是否有这个网址的映射,如果有,就调用这个IP地址映射,解析完成。
(2)如果没有,则查找本地DNS解析器缓存是否有这个网址的映射,如果有,返回映射,解析完成。
(3)如果没有,则查找填写或分配的首选DNS服务器,称为本地DNS服务器。服务器接收到查询时:如果要查询的域名包含在本地配置区域资源中,返回解析结果,查询结束,此解析具有权威性。如果要查询的域名不由本地DNS服务器区域解析,但服务器缓存了此网址的映射关系,返回解析结果,查询结束,此解析不具有权威性。
(4)如果本地DNS服务器也失效:
如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP,本地DNS服务器收到顶级域名服务器IP信息后,继续向该顶级域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器(如http://baidu.com)的IP给本地DNS服务器,循环往复直至查询到映射,将解析结果返回本地DNS服务器,再由本地DNS服务器返回解析结果,查询完成。
简单概述则为:浏览器缓存、路由器缓存、DNS缓存

2.浏览器向web服务器发送一个HTTP请求

得到目标服务器的IP地址及端口号(http 80端口,https 443端口),会调用系统库函数socket,请求一个TCP流套接字。客户端向服务器发送HTTP请求报文:
(1)应用层:客户端发送HTTP请求报文。
(2)传输层:(加入源端口、目的端口)建立连接。实际发送数据之前,三次握手客户端和服务器建立起一个TCP连接。
(3)网络层:(加入IP头)路由寻址。
(4)数据链路层:(加入frame头)传输数据。
(5)物理层:物理传输bit。

3.服务器处理请求

服务器端经过物理层→数据链路层→网络层→传输层→应用层,解析请求报文,发送HTTP响应报文。

4.关闭连接,TCP四次挥手

5.服务器发回一个HTML响应,浏览器开始显示HTML

该过程使用到的协议

DNS:获取域名对应IP
TCP:与服务器建立TCP连接
IP: 建立TCP协议时,需要发送数据,发送数据在网络层使用IP协议
OPSF:IP数据包在路由器之间,路由选择使用OPSF协议
ARP:路由器在与服务器通信时,需要将ip地址转换为MAC地址, 需要使用ARP协议
HTTP:在TCP建立完成后,使用HTTP协议访问网页

二、什么是HTTP协议?

HTTP(HyperText Transport Protocol)是超文本传输协议的缩写,它用于传送www方式的数据,关于http协议采用了请求/响应模型,客户端向服务器发送了一个请求,服务器以一个状态行作为响应。

三、HTTP 和 HTTPS 的区别?

  1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头;
  2. HTTP 是不安全的,而 HTTPS 是安全的;
  3. HTTP 标准端口是80 ,而 HTTPS 的标准端口是443;
  4. 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层;
  5. HTTP 无法加密,而HTTPS 对传输的数据进行加密(http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议);
  6. HTTP无需证书,而HTTPS 需要CA机构的颁发的SSL证书。

四、HTTP请求报文与响应报文格式

1.HTTP请求报文

(1)请求报文包含四部分

A:请求行:包含请求方法、URI、HTTP版本信息
B:请求首部字段
C:请求内容实体
D:空行

(2)请求首部字段(请求报文会使用的首部字段)

Host:请求资源所在服务器
Accept:可处理的媒体类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言

2.HTTP响应报文

(1)响应报文包含四部分

A:状态行:包含HTTP版本、状态码、状态码的原因短语
B:响应首部字段
C:响应内容实体
D:空行

(2)响应首部字段(响应报文会使用的首部字段)

Accept-Ranges:可接受的字节范围
Location:令客户端重新定向到的URI
Server:HTTP服务器的安装信息

3.通用首部字段(请求报文与响应报文都会使用的首部字段)

Date:创建报文时间
Connection:连接的管理
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式

4.实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)

Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

五、HTTP方法

在这里插入图片描述

1.常用的HTTP方法

GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS:查询相应URI支持的HTTP方法。
TRACE:请求服务器回送收到的请求信息(用于测试和诊断)

2.GET方法和POST方法的区别

在这里插入图片描述

六、常见的HTTP相应状态码

在这里插入图片描述

1.常见的状态码

200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向(跳转,重定向)结合头部信息Location字段,指定重定向地址。
400:请求报文语法有误,服务器无法识别(一般用于客户端请求错误,常常在请求参数格式有误时出现)
401:请求需要认证【一般用于用户没有登录,(Session获取= =null)】
403:请求的对应资源禁止被访问【用户登录,但是权限不够(Session !=null,但是session.get用户的身份判断权限不足)】
404:服务器无法找到对应资源【找不到资源:可以是网页,可以是后台服务】
405:客户端请求中的方法被禁止【ur|对应的方法找到了,但是不接受请求方法】
500:服务器内部错误【一般用于服务器原因(可能代码问题,环境问题)抛出异常时的处理方式】
503:服务器正忙

2.url怎么定位资源(404问题)?

答:
先查询IP所在主机,查找对应端口的应用程序,查找部署的项目,最后查找该项目的服务( 包括静态资源及Servlet提供url服务),如果还找不到,返回404。

七、http为什么是无状态的?

无状态是指协议对于事务处理没有记忆能力,因为http协议目的在于支持超文本的传输,更加广义一点就是支持资源的传输,那么在客户端浏览器向服务器发送请求,继而服务器将相应的资源发回客户这样一个过程中,无论对于客户端还是服务器,都没有必要记录这个过程,因为每一次请求和响应都是相对独立的,一般而言,一个url对应唯一的超文本,正因为这样d唯一性,所以http协议被设计为无状态的链接协议符合他本身的需求。

八、IP地址的A、B、C、D类

1.A类地址

表示范围是:0.0.0.0-126.255.255.255,默认网络掩码为:255.0.0.0,A类地址分配给规模特别大的网络使用,

2.B类地址

表示范围是:128.0.0.0-191.255.255.255,默认网络掩码为:255.255.0.0,B类地址分配给一般的中型网络

3.C类地址

表示范围是192.0.0.0-223.255.255.255,默认网络掩码是:255.255.255.0,C类地址分配给小型网络,如局域网

4.D类地址

称为广播地址,共特殊协议向选定的节点发送信息使用。

九、HTTP的长连接和短链接

http1.0中默认使用短连接,服务器和客户端没进行一次http操作,就建立一次连接,任务结束就终端连接,http1.1起。默认使用长连接,用以保持连接特性,当一个网页打开完成后,服务器和客户端之间用于传输http数据的tcp连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立好的连接。

十、重定向和转发的区别

在这里插入图片描述
重定向:

转发:在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值