【必学】HTTP与HTTPS区别与联系

一、HTTP协议解析

1. 原理

HTTP(HyperText Transfer Protocal),超文本传输协议,属于TCP/IP协议族中的应用层协议,端口号80,用于保证B/S架构中浏览器与万维网服务器交换信息的统一性。其遵循的模型是请求/响应模型。

2. 抓包深入理解Request和Response

POST /dvwa/login.php HTTP/1.1                                          //请求行
Host: 172.16.128.5                                                     //请求头
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.128.5/dvwa/login.php
Cookie: security=high; PHPSESSID=42646081f74eb6fc613b3314ef5d61b7
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 41
                                                                        //空白行
username=12345&password=12345&Login=Login                               //请求正文

1. 请求行

(1)请求方法

         GET:获取请求页面的指定信息(以实体的格式)

         HEAD:获取请求页面的响应头,效率比GET高,多用于扫描工具中用于探测资源的存在性

         POST:类似于GET,但可以向服务器发送不受长度限制的数据,不显示到浏览器上,安全性比GET高

         PUT:创建或替换资源,大部分情况被禁用

         DELETE:删除资源,大部分情况被禁用

         TRACE:回显服务器收到的请求

         CONNECT:动态切换到隧道的代理

         OPTIONS:请求资源的可选项,或了解服务器性能

(2)请求的资源

(3)HTTP版本

HTTP目前最新版本是1.1,是一种无状态的协议,即每次浏览器发起请求,服务器响应后就断开连接,对服务器的性能和安全性有直接关系。

2. 请求头

(1)Host:指定被请求资源的主机和端口号

(2)User-Agent:客户端浏览器信息,操作系统信息及其他属性信息

(3)Accept:客户端指定接收哪些MIME类型的信息

(4)Cookie:非常重要的请求信息,标识请求者身份

(5)Referer:代表当前访问的URL的上一个URL

(6)Range:表示可以请求实体的部分内容,用于多线程下载

(7)x-forward-for:多个请求端IP,中间以逗号隔开

3. 请求正文

HTTP/1.1 200 OK                          //响应行
Date: Thu, 27 Feb 2020 06:35:06 GMT      //响应头
Server: Apache/2.2.8 (Ubuntu) DAV/2
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Pragma: no-cache
Cache-Control: no-cache, must-revalidate
Expires: Tue, 23 Jun 2009 12:00:00 GMT
Content-Length: 1328
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
                                        //空白行
<html>                                  //响应正文
    ...
</html>

 1. 响应行

(1)HTTP版本

(2)状态码

        1xx 成功接收,继续处理

        2xx 成功(常见200)

        3xx 重定向(302)

        4xx 客户端错误(400语法错误 401请求未经授权 403收到请求,拒绝服务 404请求资源不存在)

        5xx 服务器错误(500服务器内部错误 503服务器当前不能处理请求,一段时间后可能恢复)

 2. 响应头

(1)Server:服务器信息

(2)Set-Cookie:向客户端设置Cookie

(3)Last-Modified:资源的最后修改时间

(4)Location:服务器告诉浏览器去访问哪个页面,一般见于302

(5)Refresh:告诉浏览器定时刷新

 3. 响应正文

       请求的资源的HTML源代码

二、HTTP协议与HTTPS协议区别与联系

1. HTTPS(HTTP over Secure Socket Layer)是在HTTP下加入SSL层,即安全传输机制,相对于HTTP明文传输,HTTPS进行了数据的加密,对数据的隐秘性和完整性发挥了作用

2. HTTPS协议需要到CA申请证书

3. HTTP端口号80,HTTPS端口号443

发布了15 篇原创文章 · 获赞 6 · 访问量 718

猜你喜欢

转载自blog.csdn.net/Sck121/article/details/104576467
今日推荐