一、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-alive
或Connection: 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请求过程详解