全国咨询/投诉热线:400-618-9090

首页新闻动态正文

HTTP工作原理和HTTP请求方式介绍[黑马软件测试培训]

更新时间:2019-12-19 来源:黑马程序员 浏览量:

HTTP工作原理

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

HTTP请求/响应步骤

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

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

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

2、送HTTP请求

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

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

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

4、释放TCP连接

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

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

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

1576746371886_http请求方式.jpg


什么是幂等和非幂等

在了解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请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

猜你喜欢:
功能测试、性能测试和自动化测试有什么区别?

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

pythonAI

在线咨询 我要报名