HTTP请求由客户端发起,是指从客户端到服务器端的请求消息。
如何发起HTTP请求
借助HTTP工具并且知道URL即可发起这个HTTP请求。
例如:
在浏览器地址栏输入一个URL,按下回车即可发起这个HTTP请求。
URL(统一资源定位符 / 网址)格式为:
协议://服务器IP地址(:端口)/路径/(?查询) //默认端口可省略,查询部分可能没有注:
1. IP地址是用来唯一标识互联网上计算机的逻辑地址。每台连网计算机都依靠IP地址来互相区分、联系。但IP地址是数字标识,难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。多条域名可以同时解析一条ip,但是一条域名无法解析多条ip。
2. 端口可省略,省略时使用默认端口,HTTP协议默认端口号80,HTTPS协议默认端口号443。
例如:
https :// www.baidu.com /baidu ?tn=monline_7_dg&ie=utf-8&wd=1
协议 :// 服务器IP地址(域名)/路径 ?查询
https :// www.w3school.com.cn /html/html_jianjie.asp
协议 :// 服务器IP地址(域名)/路径(带层次的文件路径)/
在Linux系统中可以用curl命令发起HTTP请求,Windows系统中可以使用curl.exe工具(需自行下载)。
HTTP请求格式
HTTP请求包括三个部分:请求行 、请求头 、请求正文。(可在浏览器里按下F12查看)
eg.
POST /page/index/checkCode.php HTTP/1.1
Host: cspsj.noi.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:94.0) Gecko/20100101 Firefox/94.0
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://cspsj.noi.cn/
Content-Length: 17
type=getCheckCode
其中第一行为请求行;
组成方式为:请求方法(POST) / 在该域名根目录下所请求的地址(/page/index/checkCode.php) / 使用的协议以及版本(HTTP 1.1版本)
第二行至空白行都为请求头,为客户端向服务器传递的附加信息,也可传递客户端自身的信息。
最后一行为请求正文。(最常出现于POST请求,GET请求没有请求正文)
HTTP请求方法
1.GET
GET方法用于获取请求页面的指定信息,返回实体主体。我们平时打开并浏览一个普通网页时一般都是GET请求,比如现在点开这篇博客(
2.POST
与GET相似,不同点在于POST请求有请求主体,用于向服务器传送大量数据,并且信息不会显示在URL中,相比GET更加安全。用于上传文件,登录注册等。
注:GET请求与POST请求区别
3.HEAD
除了并不返回消息主体之外,与GET相同,用于获取消息报头(响应头)。可以检验一个资源的有效性(可以了解到存于响应头中的内容),因为不返回消息主题(响应正文)所以速度很快。
4.PUT
可以把请求中的实体部分保存在请求的资源下,如果请求的资源在服务器中已经存在,则会用请求中的实体部分替换原请求资源。用于创建新的资源或替换指定的资源。
5.DELETE
用于请求删除服务器所请求的指定资源。
6.TRACE
可以回显服务器收到的请求,使得用户可以了解数据被请求那一方的接收情况并且用于诊断和调试。
7.CONNECT
此方法被用于能够将连接改为管道方式的代理服务器。
8.OPTIONS
用于请求获得所请求资源在通信过程中可以使用的功能选项,或者查看服务器的性能。
请求头
只用于HTTP请求中,可以使客户端向服务器传递客户端自身信息,附加信息。