HTTP工作原理

HTTP协议定义了web客户端如何从web服务器请求web页面,以及服务器如何将web页面传递给客户端。HTTP协议使用请求/响应模型。客户端从服务器请求消息。请求消息包括方法、URL、协议版本、请求头和请求数据。服务器用状态行响应,状态行包括协议版本、成功或错误代码、服务器信息、响应头和响应数据。

HTTP请求/响应步骤

客户端连接到Web服务器->发送HTTP请求->服务器接受请求,返回HTTP响应->释放连接TCP连接->客户端浏览器解析HTML内容。

1、客户端连接到Web服务器

HTTP客户端(通常是浏览器)建立到web服务器HTTP端口(默认为80)的TCP套接字连接。

2、送HTTP请求

客户端通过TCP套接字向web服务器发送文本请求消息。请求消息由四部分组成:请求行、请求头、空行和请求数据。

3.服务器接受请求并返回一个HTTP响应

web服务器解析请求并定位请求的资源。服务器将资源的副本写入TCP套接字,客户端读取它。响应包括状态行、响应头、空行和响应数据。

4、释放TCP连接

如果连接模式关闭,服务器将主动关闭TCP连接,客户端被动关闭连接并释放TCP连接。如果连接模式保持活动状态,则连接将保持一段时间,在此期间可以继续接收请求。

5、客户端浏览器解析HTML内容

客户端浏览器首先分析状态行,以查看指示请求是否成功的状态代码。然后分析每个响应头,这表示以下是HTML文档和文档字符集中的字节数。客户端浏览器读取响应数据HTML,根据HTML语法对其进行格式化,并将其显示在浏览器窗口中。

什么是幂等和非幂等

在了解HTTP请求方式之前,我们先来了解一下“幂等”和“非幂等”。

幂等性:对于相同的行为,如果无论多少次,最终结果都是相同的,则该行为称为幂等。

非理想性:对于相同行为,如果最终结果与执行次数相关,每次结果不同,则称为非幂等。

HTTP的请求方式有哪些?

GET:从服务器获取资源(一项或多项)。发送请求来获得服务器上的资源,请求体中不会包含请求数据,请求数据放在协议头中。另外get支持快取、缓存、可保留书签等。幂等

POST:在服务器新建一个资源。和get一样很常见,向服务器提交资源让服务器处理,比如提交表单、上传文件等,可能导致建立新的资源或者对原有资源的修改。提交的资源放在请求体中。不支持快取。非幂等

PUT:在服务器更新资源(客户端提供改变后的完整资源)。和post类似,html表单不支持,发送资源与服务器,并存储在服务器指定位置,要求客户端事先知道该位置;比如post是在一个集合上(/province),而put是具体某一个资源上(/province/123)。所以put是安全的,无论请求多少次,都是在123上更改,而post可能请求几次创建了几次资源。幂等。

DELETE:从服务器删除资源。请求服务器删除某资源。和put都具有破坏性,可能被防火墙拦截。如果是https协议,则无需担心。幂等

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。就是把服务器作为跳板,去访问其他网页然后把数据返回回来,连接成功后,就可以正常的get、post了。

OPTIONS:获取http服务器支持的http请求方法,允许客户端查看服务器的性能,比如ajax跨域时的预检等。

TRACE:显服务器收到的请求,主要用于测试或诊断。一般禁用,防止被恶意攻击或盗取信息。

HEAD:向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

以上内容为大家介绍了HTTP请求方式有哪些,本文由多测师亲自撰写,希望对大家有所帮助。https://www.duoceshi.com/xwzx-hydt/1688.html

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部