一、什么是http协议
HTTP
协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
二、客户端的请求格式
客户端收到的请求格式如下所示:
GET / HTTP/1.1
Host: 82.157.254.9:666
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: wp-settings-time-1=1655560711
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
首先是请求行,请求行包括请求的方法、URL、协议版本等;
例如上面的示例中,请求的方法是GET,协议版本是HTTP/1.1。然后回车、换行;
第二部分是请求头部:请求头部包含多个字段,比如connection字段、Cache-Control字段等,中间有个冒号,冒号后面是该字段具体的值。
然后紧跟着一个空行,即只有回车符和换行符;用以对“请求头部”和“请求数据”进行分隔的;
最后是请求数据;
三、服务端的响应格式
客户端的响应示例如下所示:
HTTP/1.0 200 OK
Server: Martin Server
Content-Type: text/html
Connection: Close
Content-Length: 526
<html lang="zh-CN">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>This is a test</title>
</head>
<body>
<div align=center height="500px" >
<br/><br/><br/>
<h2>大家好,这是响应的数据!</h2><br/><br/>
<form action="commit" method="post">
尊姓大名: <input type="text" name="name" />
<br/>芳龄几何: <input type="password" name="age" />
<br/><br/><br/><input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
</div>
</body>
</html>
服务器响应客户端的HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文,如下图所示:
以上面的响应示例为例:
状态行:协议版本是HTTP/1.0
,然后空格,然后响应代号是200
,然后空格,最后代号描述是OK
比较常用的代号描述有: