HTTP协议详解

  1. 一、HTTP概述:
  2. 二、HTTP请求消息:
  3. 三、HTTP响应消息:

一、HTTP概述:

1、什么是HTTP协议

  • http 即超文本传输协议,是互联网上应用最广泛的一种网络协议。所有的www文件都必须遵循这个标准。设计http最初的目的是为了提供一种发布和接收HTML页面的方法,浏览器通过这一协议与服务器交互。

2、HTTPS

  • https是基于http,比http更加安全,提供了身份验证和通信内容加密。

3、1.0和1.1的区别:

  • http1.0 通信基制,每次从浏览器向服务器发送请求,都需要建立一个新的Tcp连接。
    在这里插入图片描述
  • http1.1建立一个Tcp连接,可以发送多个请求,服务器在作出多个响应后,最后关闭这个Tcp连接。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020041313291582.png)
    4、HTTP消息
  • http是基于请求和响应的,http消息包括请求头消息和响应消息。

以这个简单的登录页面为例:
在这里插入图片描述
bp抓包得到请求信息和响应相应信息。

5、请求信息

GET /a/1.html?user=12345&pwd=12345 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
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
Connection: close
Referer: http://127.0.0.1/a/1.html
Upgrade-Insecure-Requests: 1

6、响应信息:

HTTP/1.1 200 OK
Date: Mon, 13 Apr 2020 09:24:00 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
Last-Modified: Mon, 13 Apr 2020 09:23:02 GMT
ETag: "fa-5a328a13cd4a0"
Accept-Ranges: bytes
Content-Length: 250
Connection: close
Content-Type: text/html

<html>
<head>
<meta charset="utf-8"> 
</head>
<body>
<form action="get">
用户名:<br>
<input type="text" name="user">
<br>
密码:<br>
<input type="password" name="pwd">
<br>
<input type="submit" value="Submit">
</form> 
</body>
</html>

二、HTTP请求消息:

http请求信息包括:

1、请求行:

GET /a/1.html?user=12345&pwd=12345 HTTP/1.1

2、请求头信息:

Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
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
Connection: close
Referer: http://127.0.0.1/a/1.html
Upgrade-Insecure-Requests: 1

标识解释:

  • Host :请求资源主机的IP地址端口号(这里为80端口,默认不显示)。
  • Accept:指示客户机可以接收的媒体类型。
  • Referer:请求是从什么地方发起的。(可以用来防盗链)
  • Content-Type:指出发送给服务器的消息主体的媒体类型。
  • Accept-Encoding:客户机可以接收的内容编码类型,如”gzip”。

3、请求正文:

请求正文是只有以post方式提交的表单才有,get方式的请求内容在请求行里且url地址栏里也会有请求内容。
在这里插入图片描述
如果上面的登陆页面是以post方式提交,则请求正文为:

user=12345&pwd=12345

三、HTTP响应消息:

http响应信息包括:

1、响应行信息

HTTP/1.1 200 OK

由三部分组成,依次为:协议和版本号(HTTP/1.1)、状态码(200)、对状态码的描述(ok为响应成功)。

常见的HTTP状态代码:
在这里插入图片描述
补充:
在这里插入图片描述
2、响应头信息:

Date: Mon, 13 Apr 2020 09:24:00 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
Last-Modified: Mon, 13 Apr 2020 09:23:02 GMT
ETag: "fa-5a328a13cd4a0"
Accept-Ranges: bytes
Content-Length: 250
Connection: close
Content-Type: text/html

标识解释:

  • Server: 使用的的服务器类型。

3、响应正文信息:

<html>
<head>
<meta charset="utf-8"> 
</head>
<body>
<form action="get">
用户名:<br>
<input type="text" name="user">
<br>
密码:<br>
<input type="password" name="pwd">
<br>
<input type="submit" value="Submit">
</form> 
</body>
</html>

🆗,HTTP协议的介绍大致就这么多。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏