HTTP详解

文章详细阐述了一个HTTP请求从发起至完成的全过程,包括网络分层的概念,域名解析的步骤,HTTP协议的无状态特性及其报文格式,以及TCP的三次握手建立连接。在HTTP请求中,浏览器解析URL,通过DNS查找IP,然后进行TCP连接,发送HTTP请求,服务器响应后浏览器接收并渲染页面,最终通过四次握手结束连接。
摘要由CSDN通过智能技术生成

1.0 从一个http请求来看网络的分层原理

  1. 一个复杂的网络

在内网中使用网线进行传输,连接到公网使用光纤进行连接

  1. 为了简化网络的结构,将网络的各方面进行分层,每一层只和上一层或者下一层进行交互,将网络分层。只要层与层的接口保持不变,就不会影响到其他层。

3. 一个http请求流程

  1. 域名解析过程

首先去本地的dns缓存,然后查找本地host文件,再去向电脑上配置的dns服务器发送请求

2.0 http协议

超文本传输协议,无状态的(不保存用户的信息),可扩展(请求头可以添加自己的东西)

  1. http格式

  • 起始行(描述请求和响应的基本信息)

- 头部字段集合 (使用k-v键值对更加详细的说明报文)

- 消息正文 (实际传输的数据,不一定是纯文本,可以是图片,文件等二进制流数据)

2. 请求报文格式

  • 请求行报文

  • 请求方法:如GET/HEAD/PUT/POST,表示对资源的操作

- 请求目标:通常是一个uri,标记了请求方法要操作的资源

- 版本号:表示报文使用的HTTP协议版本

  • HTTP头字段

- 头部字段是k-v键值对的形式

- key和value之间用‘’:‘’分隔最后使用CRLF换行表示字段的结束。

- 比如前后端中后端协商传输的数据类型:“content-type:application/json”

注意点:

- 字段名部区分大小写,字段名里不允许出现空格,可以使用“-”,但不能使用“_”

  1. 响应报文格式

- 响应行报文

- 版本号:表示报文使用的HTTP协议版本

- 状态码:一个三位数,用代码的形式表示处理结果,比如200,500服务器错误

- 原因:

3.0 http请求的完整过程

  1. 首先是浏览器去解析url的域名

2. 根据域名提供对应的ip地址:首先是从浏览器缓存中查看,然后去本机的hots文件中去查看,然后在从远程服务器上去请求,在浏览器中输入下面的代码就可以查看到浏览器缓存

chrome://internals/#events

3. 拿到ip地址后,浏览器就和服务器发送三次握手

  1. 握手完成后,就开始组装http请求报文,发送报文

5. 服务收到请求报文后,请求报文解析,发送响应数据

6. 浏览器收到响应之后开始渲染页面

7. 第四次握手表示连接的结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值