网络知识总结1

本文介绍了一次完整的HTTP请求过程,包括域名解析(递归和迭代查询)、TCP三次握手、发起请求、服务器响应及浏览器渲染。还阐述了HTTP请求和响应的格式,以及不同开头的状态码含义,如2开头表示成功、3开头表示重定向等,并举例说明了重定向的请求流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次完整的HTTP请求:

1、域名解析:在系统的hosts文件里查找域名对应的ip地址,没有的话向本地DNS发送一个请求报文,本地服务器必须返回完整的结果,称为递归查询;如果本地DNS服务器没有,则启动一次远程查询,请求根域名服务器,每次返回一部分域名,直到找到域名对应的ip地址并返回一个响应报文,这个机制称为迭代查询

A、查询报文和响应报文都作为UDP数据包发送,即DNS是基于UDP的

B、DNS所有的查询答案,包括所有的部分答案都会被缓存,缓存也是有过期时间的。

2、发起TCP的三次握手建立连接

3、建立TCP连接后发起HTTP请求

4、服务器响应HTTP请求,业务逻辑处理,返回HTTP响应给浏览器

5、浏览器得到html代码,会解析html代码,并请求html代码中的资源(如js,css,图片等;并对页面进行渲染最终呈现给用户)

 

HTTP请求格式:

主要由四部分组成,分别是:请求行、请求头、空行、消息体,每部分内容占一行。

请求行:由三部分组成,GET/POST请求方法、请求资源URL、HTTP版本号

请求头:和缓存相关的头(Cache-Control, if-Modified-Since),客户端身份信息(User-Agnet)等等。

消息体:客户端发给服务器的请求数据,这部分数据并不是每个请求必须的。

 

HTTP响应格式:

包括:状态行、响应头、空行、消息体。每部分内容占一行。

状态行:HTTP协议版本号、状态码和状态说明三部分构成

响应头:响应头是服务器传递给客户端用于说明服务器的一些信息(Content-Type, charSet等),以及将来继续访问该资源时的策略。

响应体:返回给客户端的HTML文本内容,或者其他格式的数据,比如视频流、图片或者音频数据。

 

HTTP状态码:

2开头(请求成功)表示成功处理了请求的状态代码。

3开头(请求被重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向

4开头(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理

5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

 

301/302/303都表示重定向

301表示永久重定向:表示请求的资源分配了新的url,以后应使用新url

302表示临时性重定向,请求的资源临时分配了新url,本次请求暂时使用新url。302与301的区别是,302表示临时性重定向,重定向的url还有可能还会改变。

303表示请求的资源路径发生改变,使用GET方法请求新URL。他与302的功能一样,但是明确指出使用GET方法请求新url。

url指的是:第一次请求返回的location

举例说明:

1、浏览器访问http://write.blog.youkuaiyun.com,csdn中“我的博客”

2、服务器,返回状态吗302(url临时改变)和location

3、浏览器,请求location指定的地址,完成请求。也就是说:浏览器一共请求了两次。

 

 

200

(成功)

服务器已成功处理了请求。通常,这表示服务器提供了请求的网页

301

(永久移动)

请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302

(临时移动)

服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

404

未找到

服务器找不到请求的网页

415

请求错误

后台程序不支持提交的content-type

405

请求错误

请求的方式(get,post,delete)方法与后台规定的方式不符合

400

请求错误

请求的报文中存在语法错误,比如url中含有非法字符;提交json时,如果json格式有问题,接收端接收json,也会出现400 bad request

401

 

未授权,比如访问SpringSecurity限制了权限的资源

500

服务器内部错误

服务器遇到错误无法完成请求

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值