HTTP方法、状态码和请求过程

一、HTTP方法概念:

HTTP客户端发出请求,告知服务端需要执行不同类型的请求命令,这些命令被称为HTTP方法。

简说:HTTP方法是告诉服务器要做什么。

1、GET方法:获取资源

作用:

①通常用于请求服务器发送某个资源,也是最常用一种的方法。

2、POST方法:传输实体数据

作用:

①POST方法是用来向服务器输入数据的,主要支持HTML表单。

②表单填写好后会被发送给服务器,比如登录窗口输入用户名和密码,供服务器验证身份。

区别:

①POST用于向服务器发送数据,PUT用于向服务器上的资源(比如文件)中存储数据。

3、PUT方法:传输文件

作用:

①PUT方法是向服务器写入文档,让服务器请求的主体部分来创建一个由所请求的URL命名的新文

档,若已存在该文件,就用这个主体替代它。

②因为涉及内容修改,大部分执行PUT方法前,被要求登录。

4、HEAD方法:获取头部报文       

作用:

①类同于GET方法,但只需要服务器返回首部,不返回实体的主体部分。可实现未获取实际资源的

情况下,对资源的首部进行检查。

a、可用于判断资源类型

b、通过状态码判断资源是否存在

c、测试资源是否被修改

5、DELETE方法:删除指定资源

作用:

①请求服务器删除请求中的URL所指定的资源,但不一定成功

②不成功的原因,HTTP规范允许服务器在不通知客户端的情况下撤销请示

6、OPTIONS方法:询问支持方法

作用:

①询问服务器支持的各种功能

②可以询问服务器支持哪些方法

③可以询问某些特殊资源支持哪些方法

7、TRACE方法:跟踪路径

作用:

①跟踪请求经过了哪些中间环节(防火墙、代理等)

②每个中间节点可以修改原始的http请示,即增加代表自己的信息(via:1.1proxy.sangfor.com.cn)。

③最后的响应服务器将最终的请示头,作为响应主体,返回给客户端

二、HTTP响应状态码概念:

①客户端向服务器发出请求,状态码用于描述返回的请求结果

②状态码由3位数字和原因短语组成,首位数字表示响应类别,原因短语代表说明和含义,比如

200 ok,404 Not Found

③不同的状态码,代表不同的状态。借助状态码,用户可以知道服务端是正常处理了请求,还是出

现了错误,出现了哪类可能的错误。

④常用的共计14种

1、2xx成功(200,204,206)

作用:

①2XX的响应结果表明请求被正常处理了。

②常见的有200、204、206

实例1:200 OK

①表示从客户端发来的请求在服务器端被正常处理了

②浏览器会接着处理、显示返回的数据。

实例2:204 Not content

①表明请示已经执行成功,但不需要做任何响应。204响应码会中断浏览器的页面跳转,浏览器会

保持原URL不变,页面内容也维持原状。

②响应报文中没有实体的主体部分,主要用于在浏览器不转为显示新文档的情况下对其进行更新

(比如刷新一个表单页面)。

实例3:206 Partial Content

①表明客户端进行了范围请求,而服务器成功执行了这部分的Get请求

②响应报文中包含由Content-Range指定范围的实体内容,然后由浏览器进行内容整合。

2、3xx重定向(301、2、3,304,307)

作用:

①3XX代表重定向状态码,表明浏览器需要执行某些特殊的处理以正确处理请求

②常见的有301、302、303、304、307

实例1:301 Moved Permanently

①永久性重定向,该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的

URI。

②新地址会在响应头的Location字段中指定

实例2:302 Found

①临时性重定向,表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问。

②与301相似,但302表示的不是永久移动,只是临时性质的,已移动资源对应的URI将来还有可能

发生改变。

注意:

①301、302、303的响应,浏览器都会把POST方法替换为GET方法,去除请求里的POST数

据体部分,并自动重新再发送一次请求。

②307会遵照浏览器标准,不会从POST变成GET,临时重定向。该状态码与302Found有着相同的

含义。

3、4xx客户端错误(400、01、03、04)

作用:

①4XX响应结果代表客户端发生错误。

②常见的有400、401、403、404

实例1:400 Bad Request(不合规范的请求)

①400表示请求报文中存在语法错误,当错误发生时,需修改请求的内容后再次发送请求。

实例2:401 Unauthorized

①401表示发送的请求需要有通过HTTP认证的认证信息。

②若之前已进行过1次请求,则表示用户认证失败。

③一般是在访问特定资源,用户提供基于HTTP协议级别的授权认证信息,浏览器在用户输入登录

信息后,并授权失败时,才会返回该响应消息体。

④含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询用户信息。

实例3:403 Forbidden

①403表明对请求资源的访问被服务器拒绝了

②服务器端没有必要给出拒绝的详细理由,若想说明,可以在实体的主体部分对原因进行描述。

③出现403的原因:未获得文件系统的访问授权,访问权限出现某些问题等(所请求的URL存在但不

能被访问,可能是文件系统权限不足,规则配置不允许处理本次请求,或授权不足)。

实例4:404 Not Found

①404表明服务器上无法找到请求的资源,或服务端拒绝请求,但又不想说明理由时使用。

②通常响应消息体会显示给用户

4、5xx服务器错误(500,503)

作用:

①5XX的响应结果表明服务器本身发生错误。

②常见的有:500、503

实例1:500 internal server error

①500表明服务器端在执行请求时发生了错误。也有可能是web应用存在的bug或某些临时的故

障。

实例2:503 Service Unavailable

①503表时服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

②可通过Retry-After首部字段填上解除以上状况的时间,返回给客户端。

三、http请求过程详解

①浏览器:用户输入目标url

URL通常包括协议(如http或https)、域名(或IP地址),有时还可能包括端口号和路径。

②DNS域名解析

浏览器首先检查自身缓存中是否已有该URL的IP地址。如果没有,它会查询操作系统的缓存,接着

是路由器的缓存,最后是ISP的DNS服务器。如果这些缓存中都没有,DNS请求可能被发送到更高

级别的DNS服务器,直到找到相应的IP地址。

whireshark抓包:

nslookup解析:

③建立TCP连接

浏览器使用目标服务器的IP地址尝试建立TCP连接,这通常涉及到一个称为三次握手的过程。

whireshark抓包:

④发送http request

连接建立后,浏览器构建HTTP请求(包括请求行、请求头部及可能的请求体)并通过TCP连接发

送给服务器。

⑤web服务器响应(回复)

Web服务器接收到请求后,根据请求类型(GET、POST等)处理请求,可能涉及静态内容的返回

或者生成动态内容。服务器将响应(状态码、响应头、响应体)发送回浏览器。

⑥应用服务器响应(回复)

如果请求需要后端逻辑处理,如数据库查询或其他资源交互,Web服务器会与应用服务器通信。应

用服务器执行必要的操作后,将结果返回给Web服务器,再由Web服务器整合这些数据形成HTTP

响应。

⑦关闭tcp连接

根据HTTP的版本和头信息(如Connection: keep-aliveConnection: close),TCP连接可能会

在响应后立即关闭,或保持开启以供后续请求重用。

⑧用户浏览器渲染页面

浏览器接收到数据后开始解析HTML,构建DOM树,解析CSS,执行JavaScript等,最终渲染出页

面。

一、HTTP方法概念:

1、GET方法:获取资源

2、POST方法:传输实体数据

3、PUT方法:传输文件

4、HEAD方法:获取头部报文       

5、DELETE方法:删除指定资源

6、OPTIONS方法:询问支持方法

7、TRACE方法:跟踪路径

二、HTTP响应状态码概念:

1、2xx成功(200,204,206)

2、3xx重定向(301、2、3,304,307)

3、4xx客户端错误(400、01、03、04)

4、5xx服务器错误(500,503)

三、http请求过程详解


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值