HTTP协议分析及其在物联网中的应用

前言


       HTTP的全称是超文本传输协议,可以说是网络中使用的最多的协议了,无论是浏览网页或是下载文件,都离不开http。本篇文章将介绍HTTP协议的实现过程,如果你是前端或者服务器开发人员,本篇文章将会使你更深刻地了解网页的加载过程,如果你是嵌入式网络开发人员,本篇文章可以指导你如何通过C语言实现一个HTTP服务器或客户机。

预备知识


    要想理解HTTP协议,需要先具备以下基础知识,包括 :IP、域名、DNS、TCP、UDP。

HTTP协议


        在浏览器的地址栏里输入一个网址并按下回车键后,浏览器会先向DNS服务器查找网址中域名对应的IP,找到IP地址后,与该IP的相关端口(默认80)建立TCP连接,然后按照HTTP协议进行数据交互。具体的交互过程可分为浏览器发起请求,服务器响应请求。

        本文章重在讨论HTTP协议,关于浏览器如何通过DNS服务器查找域名对应的IP,有兴趣的同学可以参考DNS协议。

        下面将通过网络调试工具模拟HTTP,需要使用到的工具有浏览器和网络调试工具

        (下载地址:http://mdocs.oss-cn-shenzhen.aliyuncs.com/http/NetAssist.exe)

补充一个特殊的IP地址:127.0.0.1,这个IP地址指向正在使用的电脑本身,也就是自己用来访问自己的地址,常常用于在一台机器上调试某个网络应用程序。接下来的介绍中将会频繁使用到这个地址。

 

查看浏览器发起的HTTP请求


本实验使用网络调试工具模拟HTTP服务器,查看浏览器发来的请求内容。

如下图所示,打开网络调试助手。

协议类型选择TCP Server

本地主机地址选择 127.0.0.1

本地主机端口输入 80

然后点击链接按钮:

打开浏览器,在地址栏中输入127.0.0.1,按下回车键,网络调试助手中将会收到类似(不同的浏览器略有不同)下图的数据:

收到的数据便是HTTP的请求头,下面我们将详细分析下HTTP请求头:

 

GET / HTTP/1.1Host: 127.0.0.1Connection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9(空行)(空行)

 首先我们来看第一行,前三个字母GET表示HTTP的请求类型为GET请求,空格后面的/表示请求路径为根目录,再一个空格后面的HTTP

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值