白话网络连接之浏览器对HTTP消息操作

前言
这段时间一起白话下网络连接,这玩意儿看似简单其实可以说的细节还是蛮多滴。自己也是边学边笔记,打算分七八个篇章来白话下网络连接,含概了浏览器对消息的处理、TCP/IP数据的传输操作、数据在网线和网络设备上传输、探索接入网和网络运营商、服务器端一般是如何处理局域网的、浏览器响应web服务器的消息。
预计我会花一月时间用几篇文章来和大家一起畅游网络知识,概要如下:
1.我们先会从浏览器的工作方式来进行了解,从浏览器中输入URL,接着浏览器去对URL进行解析,然后按照不同的协议去封装请求消息,发送请求,之后浏览器会收到响应消息。
2.我们还会去了解消息数据是如何搬运的,协议栈会将消息打包并交给网卡,然后网卡会将包转为电信号并通过网线发送出去。
3.对于发送到网络的信号数据是如何进入互联网的,这里我们会了解集线器、交换机、路由器等设备,当路由器出发的数据进入互联网后,我们就要了解下网络运营商和互联往中的骨干网。
4.之后网络包数据终于来到了Web服务器所在的局域网中,接着它会遇到防火墙,防火墙会对数据进行检查,有些重复利用的数据包还会遇到缓存服务器,当然在一些大型网站中还会遇到分布式服务器上的负载均衡器等。
5.最终,我们的网络包数据来到了Web服务器,服务器是怎么处理的呢?也是会和客户端类似,也是由操作系统中的协议栈来完成数据解析,最终按照协议中的操作指示来把数据装入响应消息中,发回给客户端。当然回发的过程和前面是正好相反滴。

正片开始:
本篇先说说第一部分,浏览器是如何生成HTTP消息的。

  • 浏览器输入网址
    这里就要聊聊网址的格式了,当我们用HTTP协议访问Web服务器时,格式如 http://user:password@www.alspd.com:80/dir/file1.htm,这儿用户名、密码、端口号3个是可以省略的。其实不光可以用HTTP协议,还有好几种其他协议,例如我们用FTP协议去下载和上传文件时,格式如 ftp://user:password@www.alspd.com:80/dir/file1.htm 。读取本机文件时如file://localhost/C:path/file1.zip ,这里计算机名localhost是可以省略的。 发送电子邮件时如mailto:alspd@qq.com。还有阅读新闻时用到的news协议。

  • 浏览器解析URL
    当在浏览器中输入完地址后按下回车,浏览器就开始要对URL进行解析了,是根据不同的协议按各自协议的格式进行解析。URL可以分为协议、服务器地址、文件路径。

  • 生成HTTP请求消息
    对URL进行解析后,浏览器也就确定了web服务器和文件名,然后根据这些信息生成HTTP请求消息了。这里浏览器就要严格按照HTTP消息格式来生成请求消息了。这里说到HTTP消息格式,是分为2类的,分别是请求消息和响应消息。我们先说下请求消息,请求消息包含第一行的请求行,通过该行浏览器可以大致了解请求的内容。紧跟着会是一组消息头,直到遇到一行空行为止,用于表示请求的附加信息。接着就是消息体了,包含客户端向服务器发送的数据。这里我们说到了消息头,其实HTTP协议规定了很多头字段类型,常见的有Cache-Control控制缓存相关信息、Connection 设置发送响应之后TCP连接是否继续保持通信、Transfer-Encoding 表示消息主体的编码格式、User-Agent客户端的软件名称和版本号等信息、Accept客户端可支持的数据类型、

  • 浏览器去访问
    在浏览器解析完URL之后就会使用HTTP协议去访问web服务器了。先简单说下HTTP协议,HTTP协议简单说就是定义了客户端和服务器之间交互的消息内容和步骤,客户端会先向服务端发送请求消息,请求消息就包含了“对什么”要“进行怎样的操作”2个部分。所谓操作,就会有HTTP规定的几个方法如GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE、CONNECT。当web服务器收到请求后,就会去对什么进行操作,并将结果存放在响应消息中。

  • 发送请求后收到响应
    这里要说响应,其实就是前面提到的另一种HTTP消息类型响应消息了,这里格式和请求消息格式一样也是分为状态行、消息头、消息体3个部分。不同的是第一行状态行会包含状态码和响应短语,这里说下状态码,1XX告知请求的处理进度和情况、2XX成功、3XX表示需要进一步操作、4XX客户端错误、5XX服务器错误。

  • 例子
    这里我们请求下:https://blog.csdn.net/alspd_zhangpan 试试,如下图:
    在这里插入图片描述这里我们可以看到请求头和响应头以及状态码等。

  • 本篇结语
    晚上写了一个多小时好累,这篇只是简单将了下浏览器对我们输入地址的处理,我们可以了解到浏览器在拿到地址后是如何生成HTTP消息的。在下面的一篇中我将白话下IP以及DNS等相关知识,敬请期待,晚安。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值