宝哥软件园

简单介绍HTTP请求模式下的八种请求方法

编辑:宝哥软件园 来源:互联网 时间:2021-08-20

简介

HTTP是一种超文本传输协议,它定义了客户机和服务器之间文本传输的规范。HTTP默认使用端口80,是指服务器的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,默认情况下浏览器会为我们添加80个端口。我们也可以自己指定访问端口,比如:http://www.ip138.com:80,需要注意的是现在大部分的访问都使用HTTPS协议,HTTPS的默认端口是443。如果使用端口80访问HTTPS协议的服务器,可能会被拒绝。

HTTP请求方法:HTTP/1.1协议定义了八种方法(有时称为“动作”),以显示Request-URL指定的资源的不同操作模式。HTTP1.0定义了三种请求方法:GET、POST和HEAD。HTTP1.1增加了五个新的请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT方法

1.OPTIONS返回服务器支持的特定资源的HTTP请求方法,或者您可以通过向web服务器发送一个“*”请求来测试服务器的功能。2. HEAD向服务器请求与GET请求一致的响应,但不会返回响应正文。这种方法可以在不传输整个响应内容的情况下获得包含在响应报头中的元信息。3.GET向特定资源发送请求。注意:GET方法不应该用在引起“副作用”的操作中,例如在Web Application中,其中一个原因就是GET可能会被Web蜘蛛随意访问。在Loadrunner中获取请求函数:web_link、web_url4和POST将数据提交给指定的资源进行请求处理(如提交表单或上传文件)。数据包含在请求正文中。POST请求可能会导致创建新资源和/或修改现有资源。Loadrunner中对应的开机自检请求功能:

Web _ submit _ data,web _ submit _ form5,PUT将其最新内容上传到指定的资源位置。6、DELETE请求服务器删除Request-URL标识的资源。7、TRACE回显服务器收到的请求,主要用于测试或诊断。8、CONNECTHTTP/1.1协议保留给可以将连接更改为管道模式的代理服务器。注意:1)方法名区分大小写。当请求所针对的资源不支持相应的请求方法时,服务器应该返回状态码405(母亲不允许);当服务器不识别或不支持相应的请求方法时,它应该返回状态代码501(未实现)。2)HTTP服务器至少要实现GET和HEAD/POST方法,其他方法可选。除了上述方法,特定的HTTP服务器还支持扩展和定制的方法。HTTP是如何工作的

HTTP协议定义了网络客户端如何从网络服务器请求网页,以及服务器如何将网页传输到客户端。HTTP协议采用请求/响应模型。客户端向服务器发送请求消息,其中包含请求的方法、URL、协议版本、请求头和请求数据。服务器以状态行响应,状态行包括协议版本、成功或错误代码、服务器信息、响应头和响应数据。

要请求/响应http:

客户端连接到网络服务器-发送HTTP请求-服务器接受请求并返回Http响应-释放TCP连接-客户端浏览器解析HTML内容

1.客户端连接到网络服务器

HTTP客户端(通常是浏览器)与Web服务器的HTTP端口建立TCP套接字连接(默认值为80)。例如,http://www.baidu.com

2.发送一个HTTP请求

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

3.服务器接受请求并返回HTTP响应。网络服务器解析请求并定位请求的资源。服务器将资源副本写入TCP套接字,由客户端读取。响应由四部分组成:状态行、响应标题、空行和响应数据。4.释放TCP连接

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

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

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

HTTP Request消息请求客户端向服务器发送HTTP请求的请求消息由以下四部分组成:请求行、请求头、空行和请求数据。

请求行以方法符号开始,用空格分隔,后面是请求的URI和协议版本。获取请求示例,使用Charles爬网的请求:

GET/562 f 25980001 b1b 106000338 . jpg HTTP/1.1 host img . mukewang.comuser-Agent Mozilla/5.0(Windows NT 10.0;WOW64)applebwebkit/537.36(KHTML,像Gecko)Chrome/51 . 0 . 2704 . 106 Safari/537.36 accept image/webp,image/*,*/*;q=参考http://www.imooc.com/Accept-Encoding gzip,deflate,sdchAccept-Language zh-CN,zh;Q=0.8第一部分:请求行,用于说明请求类型、要访问的资源以及使用的HTTP版本。

get表示请求类型为GET,[/562 f 25980001 b1b 106000338 . jpg]是要访问的资源,最后一行表示使用了HTTP1.1版本1.1。

第二部分:请求头,紧接在请求行之后的部分(即第一行),用于解释服务器要使用的附加信息

从第二行到请求头,HOST将指示请求的目的地。用户代理可以被服务器和客户端脚本访问,是浏览器类型检测逻辑的重要基础。这些信息由您的浏览器定义,并在每个请求中自动发送,依此类推

第三部分:空行,请求头后的空行是必须的

即使第四部分的请求数据为空,也必须有一个空行。

第四部分:请求数据也叫主体,其他任何数据都可以添加。

此示例的请求数据为空。

使用查尔斯爬网的请求的开机自检请求示例:

POST/https 1.1 host : www . wrox.com user-agents : Mozilla/4.0(兼容;MSIE 6.0Windows NT 5.1SV1。NET CLR 2 . 0 . 50727;NET CLR 3 . 0 . 04506 . 648;net clr 3.5.21022)内容类型: application/x-www-form-URL encoded content-length :40 connection : keep-alive name=professional Ajax publisher=Wiley part 1:request line,第一行显示了post请求和http1.1版本1.1。第2部分:请求标题,第2行到第6行。第三部分:空行,第七行的空行。第四部分:请求数据,第8行。

HTTP请求消息响应

一般来说,服务器在接收并处理客户端发送的请求后,会返回一条HTTP响应消息。

HTTP响应也由四部分组成:状态行、消息头、空行和响应体

例子

HTTP/1.1 200 OKDate: Fri,2009年5月22日06:07:21 GMT content-type : text/html;charset=UTF-8html头/头体!-body转到这里-/body/html第1部分:状态行,由HTTP协议版本号、状态码和状态消息组成。

第一个行为状态行(HTTP/1.1),表示HTTP版本为1.1,状态代码为200,状态消息为(ok)

第二部分:消息头,用于解释客户端要使用的一些附加信息

第二行和第三行是消息头,

日期:生成响应的日期和时间;Content-Type:指定HTML的MIME类型(文本/html),编码类型为UTF-8

第三部分:空行,消息头后面的空行是必要的第四部分:响应体,服务器返回给客户端的文本信息。

空行后面的html部分是响应体。

请求返回状态代码:

200OK当您的操作将在响应正文中返回数据时,会出现此结果。

204无内容当您的操作成功时,会出现此结果,但响应正文中不会返回任何数据。

更多资讯
游戏推荐
更多+