http协议

一.什么是协议

协议实际上是某些人,或者某些组织提前制定好的一套规范,大家都按照这个规范来,这样可以做到沟通无障碍

二.什么是HTTP协议

HTTP协议是w3c制定的一种超文本传输协议。(通信协议:发送消息的模板提前被制定好了)

w3c:

万维网联盟组织,负责制定标准的:HTTP HTML4.0 HTML5.0 xml dom等规范都是由w3c制定的

三.什么是超文本

        超文本说的是:不是普通的文本,比如流媒体:视频,声音,图片等

        HTTP支持:不但可以传送普通字符串,同样支持传递声音、视频、图片等流媒体信息

这种协议游走在b和s之间(b:浏览器, s:服务器)。b向s发送数据要遵守HTTP协议。s向b发送数据同样需要遵守HTTP协议。这样b和s才能解耦合

四.什么是解耦合

b不依赖s,s也不依赖b

五:b/s表示:b/s结构的系统(浏览器访问web服务器的系统)

浏览器向web服务器发送数据:叫做请求(request)

web服务器向浏览器发送数据:叫做响应(response)

六.HTTP协议包括:

请求协议:

        浏览器向web服务器发送数据的时候,这个发送的数据需要遵守一套标准,这套标准中规定了发送的数据具体格式

响应协议:

web服务器向浏览器发送数据的时候,这个发送的数据需要遵守一套标准,这套标准中规定了发送的数据具体格式

http协议就是提前制定好的一种消息模板

七.http请求协议

http协议包括四个部分:请求行,请求头,空白行,请求体

其中请求行包括三个部分:请求方式,uri,http协议版本号

请求方式

有7种:其中get post 是比较常见的两种,还有delete,put, head, optiions,trace

uri:统一资源标识符。代表网络中某个资源的名字,但是通过uri是不能够定位资源的

url:统一资源定位符。代表网络中某个资源,同时通过url是可以定位到该资源的

url包括uri:例如http://localhost:8080/servlet05/index.html这是url,/servlet05/index.html这是uri

请求头:

        请求的主机

        主机的端口

        浏览器信息

        平台信息

        cookie信息

空白行:

        区分“请求头”和“请求体"

请求体:

        向服务器发送的具体信息

八.http响应协议

http响应协议包括四部分:状态行,响应头,空白行,响应体

状态行:

        由三个部分组成

       第一个部分:协议版本号(如http/1.1)

        第二个部分:状态码(http协议中规定的响应状态号,不同的响应结果对应不同的号码)

                             200表示请求响应成功,正常结束

                             404表示访问的资源不存在。通常要么是路径写错了,要么是路径写对了,但服

                              务器中对应的资源没有启动成功

                              405表示前端发送的请求方式和后端的处理方式不一致

                               500表示服务器端程序出现了异常。一般会认为是服务器端的错误导致的

        第三个部分:状态的描述信息

                                ok表示正成功结束

                                not found表示资源找不到

响应行:

        响应内容的类型

        相应的内容长度

        响应的时间

空白行:

        用来分离”响应头”和“响应体”

响应体:

        响应体就是响应的正文,这些内容是一个长的字符串,这个字符串被浏览器渲染,解释并

        执行,最终展示出结果

怎么查看协议内容:

        使用chrome浏览器:F12,然后找到network,通过这个面板可以查看协议的具体内容。

九、get请求和post请求有什么区别

        get请求发送数据的时候,数据会挂在url的后面,并且在url后面添加一个“?”,“?”后面是数据。这样会导致发送的数据回显在浏览器的地址栏上(get请求在“请求行”上发送数据)

        post请求发送数据的时候,是在请求体中发送。不会回显到浏览器的状态栏上。也就是说,post请求发送的数据,在浏览器地址栏是看不到

        get请求只能发送普通的字符串,并且发送的字符串长度有限制。不同的浏览器的限制也不同,这个没有明确的规范

         get请求无法发送大量数据

        post请求可以发送任何类型的数据,包括普通字符串,流媒体等信息:声音,图片,视频

        post请求可以发送大量数据,理论上没有长度限制

        get请求是安全的,因为get请求只是为了从服务器上获取数据,不会对服务器造成威胁

        post请求是危险的,因为post请求是向服务器提交数据,如果这些数据通过后门的方式进入到服务器中,服务器是很危险的。另外post是为了提交数据,所以一般情况下拦截请求的时候,大部分会选择拦截(监听)post请求

        get请求有缓存

                当发送一个get请求时,浏览器做的第一件事都是从本地浏览器缓存中找,找不到的时候才到服务器中获取。这种缓存机制目的是为了提高用户的体验

        post请求没有缓存(post是用来修改服务器端的资源的)

                post请求之后,服务器响应的结果不会被浏览器缓存起来,因为这个缓存没有意义

但是,无论是get请求还是post请求,发送的请求数据格式是完全相同的,只不过位置不同,格式都是统一的

-------------------------------------------------------------------------------------------------------------------------------由于本人水平有限,码字比较仓促,有地方表达不清楚的,敬请原谅。

                                         

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值