文章目录
一、引言:Web通信的基石 - HTTP协议
HTTP是超文本传输协议,其定义了客户端和服务器端之间的文件传输规范,HTTP默认使用80端口,这个端口是指服务器端的端口,客户端使用的端口是动态分配的。当我们没有指定端口访问的时候,浏览器会默认帮我们添加80端口。我们也可以自己制定访问的端口比如:http://www.ip138.com:80
需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口是443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝
二、HTTP请求方法
2.1 OPTIONS
功能: 返回服务器针对特定资源所支持的 HTTP 请求方法。
用途: 可以通过向 Web 服务器发送 ‘*’ 请求来测试服务器的功能性。OPTIONS 请求有助于确定服务器允许哪些请求方法,并有助于预检 CORS 请求。
2.2 HEAD
功能: 向服务器请求与 GET 请求相一致的响应,只不过响应体不会被返回。
用途: 这一方法可以在不必传输整个响应内容的情况下,获取包含在响应消息中的元信息,非常适合用于验证链接的有效性或检查网页是否更新。
2.3 GET
功能: 向特定资源发起请求。
注意: GET 方法不应当用于产生副作用的操作中,例如在 Web 应用程序中,因为 GET 请求可能会被网络蜘蛛等随意访问。LoadRunner 中对应的 GET 请求函数有:web_submit 和 web_url。
2.4 POST
功能: 向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据被包含在请求体中。
用途: POST 请求可能会导致新资源的建立或已有资源的修改。LoadRunner 中对应的 POST 请求函数有:web_submit_data 和 web_submit_form。
2.5 PUT
功能: 向指定资源位置上传输其最新的内容。
用途: 通常用于更新资源的整个内容,如果资源不存在,则创建新的资源。
2.6 DELETE
功能: 向服务器删除 Request-URL 所标识的资源。
用途: 请求服务器删除指定的资源,适用于需要删除资源的场景。
2.7 TRACE
功能: 回显服务器收到的请求。
用途: 主要用于测试和诊断,查看请求在传输过程中是否被修改。
2.8 CONNECT
功能: HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
用途: 主要用于建立隧道协议,如用于 SSL 加密的 HTTP 代理。
通过了解和正确使用这些 HTTP 请求方法,可以更有效地进行 Web 开发和服务器通信,从而提高应用程序的性能和安全性。
2.9 注意
- 方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识和或者不支持对应的请求方法时,应返回状态码501(Not Implemented)
- HTTP 服务器应该至少实现GET HEAD POST方法,其他方法是可选的,此外除了上述的方法之外,特定的HTTP服务器支持扩展自定义的方法。
三、HTTP工作原理
HTTP协议定义web客户端如何从web服务器请求web页面,以及服务器如何把web页面传送给客户端,HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法,url、协议版本、请求头部和请求数据、服务器以一个状态行为作为响应。响应的内容包括协议的版本,成功或者错误代码,服务器信息,响应头部和响应数据
四、HTTP 请求/响应流程
客户端连接到web服务器 -》 发送HTTP请求 -》服务器接受请求并返回HTTP响应 -》 释放连接TCP连接 -》 客户端浏览器解析HTML内容
4.1、客户端连接到web服务器
一个HTTP客户端、通常是浏览器,与web服务的HTTP 端口(默认为80)建立一个TCP套接字连接。
4.2、发送HTTP请求
通过TCP套接字,客户端向web服务器发送一个文本请求报文,一个请求报文由请求行、请求头部、空行、请求数据4部分组成
4.3、服务器接受请求并返回HTTP响应
web服务器解析请求,定位请求资源,服务器将资

最低0.47元/天 解锁文章





