网络原理之HTTP

一、引言
我们在学习Web编程时,会学到五层网络原理,也有说七层的,不过现在基本默认为五层了,从下往上依次是物理层、数据链路层、网络层、传输层、应用层,而HTTP就属于应用层协议,它是一种超文本传输协议,是迄今互联网上应用最为广泛的一种网络协议。

二、HTTP协议的解释
我们在向浏览器发送某些请求申请某个资源时就需要遵守特定的协议,而HTTP就是服务器和浏览器之间的约定协议。在提到Web应用开发,大家自然都会想到Tomcat,那么Tomcat是什么呢?它就像淘宝店服务商一样,美其名曰中间商,只要商家遵守它的约定,它就可以为商家提供他们所需要的服务。由此及彼,在网络编程中,Tomcat也就相当于一个服务器(Server),接收浏览器发出的http请求,再传达到最终目的服务器上,响应的消息再通过Tomcat返回给浏览器。

三、HTTP的构成
1.认识URL
平时大家所说的“网址”,其实它的学名就叫URL,中文意思就是统一资源定位,它是互联网上标准资源的地址,请看下图:
图1.URLURL
2.在了解了URL之后,我们来看看HTTP它的协议格式是怎么构成的,它是如何构造请求与响应的。

                                                                                 图2.HTTP协议格式

HTTP协议格式
看了上图,可能大家还没完全搞清楚HTTP的协议格式最终到底是啥样,心里还没有完全落实出来,下面就来梳理一下它的请求响应格式的构造。
2.1HTTP请求
(1)首行:[方法]+[url]+[版本]
(2)Header:请求的属性是由冒号分割的键值对组成,每组属性之间使用\n分隔;遇到空行表示Header部分结束。
(3)Body:空行后面的内容都是BodyBody允许为空字符串,如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度。
2.2HTTP响应
(1)首行:[版本号]+[状态码]+[状态码解释]
(2)Header:请求的属性也是由冒号分割键值对组成;每组属性之间使用\n分隔;遇到空行表示Header结束
(3)Body:空行后面的内容都是BodyBody允许空字符串,如果Body存在,则在Header中会有一个Content-**Length属性来标识Body的长度,如果服务器返回了一个html页面,那么页面内容就是在Body中。
看完上述讲解,大家是不是对HTTP有了一个完整的认知,如果实在还不清楚,那么用电脑打开任意一个浏览器首页把
在更多工具里把开发者工具打开,自己抓取内容看一看就差不多了。

四、HTTP方法
我们知道了HTTP的构造之后 ,那么就可以发送请求了,那么请求里的内容怎么发送呢,用什么方法让浏览器知道你的目的呢?大家接着往下看嘿嘿嘿嘿,一些常用的方法如下:

                                                                                图3.*HTTP*常用方法

HTTP常用方法
五、HTTP状态码
在我们按照协议格式用方法把内容发送过去之后,并不能保证我们发送的请求完全无误,或者路径之类完全正确,这就是这个协议最人性的地方,它给我们提供了状态码提醒我们error的出处,因为会有各种错误,所以有了不同的状态码,当然每个状态码的含义也不同了。说实话刚开始做Web项目开发,我对状态码理解得一塌糊涂,也不用它,感觉没多大用处,但随着Web项目做多了,也就慢慢理解了它的奥妙之处,知道了怎么根据状态码去寻找项目中的错误。现在就完全都不用看书,自然就把它熟记于心了,来看HTTP五种最常出现的状态码。

                                                                               图4.HTTP转态码

在这里插入图片描述
六、抓包工具
开发Web应用时,除了使用浏览器中的开发者工具,还可以借助第三方工具查看HTTP详细请求,比如请求次数,请求的具体内容。。。常用的抓包工具有FildderPostman,这两个工具是现在最常用的,比较简单易懂,占用内存较小,通过使用抓包工具可以根据状态码修改出现的错误,调整自己的代码。

七、SessionCookie
HTTP是一个无状态协议,也即本次请求与上一次请求没有任何关联,这种无状态的好处是快速高效,但是如果需要进行用户状态保持的场景,如登录之后需要进行页面跳转,就不得不使用一些手段,所以SessionCookie就产生了。
cookie它是一种在浏览器端解决的方案,负责将登录之后的用户信息保存在本地浏览器中,后面再次发起http请求时,都能自动携带上该信息,达到认证用户,保持用户在线的作用。具体见下图:

                                                               图5.Session和Cookie在浏览器中的交互

网络原理之HTTPsession在访问用户敏感信息时会产生新的安全问题,一旦cookie丢失,用户信息容易被泄露,所以为了避免这个问题,将用户信息保存至服务器,而服务器本身采用md5算法生成唯一值,将该值保存到客户端浏览器,随后 ,客户端的后续请求都会自动携带该id,进而再在服务器端认证,达到状态保持的效果。

进入尾声了。。。。。来给大家谈谈HTTP协议的特点吧
七.HTTP协议的主要特点
(1)简单快速
客户在向服务器请求服务时,只需要传送请求方法和路径。
(2)无连接
无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户响应之后,即断开连接。
(3)无状态
协议对于事务处理没有记忆能力。对于前面处理的信息,如果后面需要,还得重传。

好了,今天的博客就更到这了,,,,有待后续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值