HTTP协议详解:从零开始的Web通信之旅

一、引言: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 注意

  1. 方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识和或者不支持对应的请求方法时,应返回状态码501(Not Implemented)
  2. 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服务器解析请求,定位请求资源服务器将资

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值