专栏首页萌兔itHTTP第一弹——发送请求接收响应的桥梁

HTTP第一弹——发送请求接收响应的桥梁

Hello~小伙伴们,昨天我们讨论了跨域的问题,那么大家有没有想过是什么承载了跨域的出现呢,是什么为前后端数据交互提供了支持呢,那就是网络传输协议。我们今天就要讨论一下最为广泛的网络传输协议——HTTP,如JavaScript一样,会分为几个专题更新呦~~

PS:今天主要为大家普及HTTP,大神不要介意哦!

什么是OSI模型??

要了解HTTP,首先要知道OSI模型,那么OSI模型到底是个啥呢?

OSI呢,是Open System Interconnection的缩写,翻译过来就是开放式系统互联,是设计和描述计算机网络通信的基本框架。OSI将网络通信的工作分成了7层,即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而我们今天的主角HTTP是位于应用层的通信协议,其实说不好记也不好记,说好记也不难,因为应用层就是面向软件的,为软件之间提供通信的,HTTP不就是做这件事情的嘛~

什么是HTTP??

铺垫结束了,我们说正题~什么是HTTP呢?

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,默认端口80。

HTTP的三个特点:

1)HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2)HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

3)HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP的消息结构什么样??

客户端又是以怎样的格式发送请求的呢?主要分为请求行、请求头部、空行、请求数据四个部分~~

服务器响应消息的格式又是怎样的呢?主要分为状态行、消息报头、空行和响应正文。

HTTP的状态码都有哪些??

大家一定注意到了,服务端响应报文的第一行状态行中有一个200吧,那就是状态码,HTTP的状态码有很多,分别代表响应的不同状态,小伙伴们一定觉得如果记下所有的状态码太困难了,其实我们只需要记住状态码的第一个数字就好,因为同一个开头数字的状态码所代表的状态会有相似的地方,已经足够你去找bug了。

HTTP状态码主要分以下几类:

1**:信息,服务器收到请求,需要请求者继续执行操作

2**:成功,操作被成功接收并处理

3**:重定向,需要进一步的操作以完成请求

4**:客户端错误,请求包含语法错误或无法完成请求

5**:服务器错误,服务器在处理请求的过程中发生了错误

HTTP都有什么方法??

我们再来看发送请求时,报文第一行的第一个词,那就是请求方法,请求方法在HTTP1.0时只有最基本的三种,到了1.1时代又增加了更丰富的请求方式,HTTP1.0的请求方式通过CORS解决跨域时其实不需要过多代码,一句即可,但是1.1的就需要所有的代码了。我们明天会有个比较专题比较GET和POST,比较HTTP1.0、HTTP1.1和HTTP2.0,敬请期待哦~~

HTTP1.0

GET:请求指定的页面信息,并返回实体主体。

POST:主要用于表单提交等,数据量大。

HEAD:类似于GET,返回响应中无具体内容。

HTTP1.1

PUT:从客户端向服务器传送的数据取代指定文档的内容。

DELETE:请求服务器删除指定页面。

CONNECT:用来将连接改为管道方式的代理服务器。

OPTIONS:允许客户端查看服务器性能。

TRACE:主要用于测试。

今天的普及工作就到这里啦~~希望小伙伴们和兔妞一起期待明天的vs专题吧~~

喜欢兔妞文章的小伙伴,请动动你们的手指,关注+好看哦,祝点击好看的小伙伴也会越来越好看~~么么哒!!!

本文分享自微信公众号 - 萌兔it(mengtu_it),作者:萌兔IT

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HTTP第二弹——HTTP前世今生大比较

    Hello,小伙伴们,这两天有点忙,没有及时推送,那么闲话不多说,继续上次的HTTP话题,我们今天就从HTTP的前世今生入手,HTTP1.0?HTTP1.1?H...

    萌兔IT
  • JavaScript入门第六弹——分分钟get Event Loop

    Hello,大家好,今天给大家带来的是Event Loop(事件循环)专题。

    萌兔IT
  • Vue系列(七)—— 从零开始搭建基于Webpack的Vue项目

    Hello小伙伴们,Vue也写了好几篇了,今天说点更实用的,今天我们就要来聊聊怎样能够快速搭建一个Vue的程序呢?这里我们可以基于Webpack去搭建,下面我们...

    萌兔IT
  • 硬核!30 张图解 HTTP 常见的面试题

    小林我搜集了 5 大类 HTTP 面试常问的题目,同时这 5 大类题跟 HTTP 的发展和演变关联性是比较大的,通过问答 + 图解的形式由浅入深的方式帮助大家进...

    帅地
  • iOS-网络编程(一)HTTP协议

    xx_Cc
  • python网络-HTTP协议(28)

    简而言之:提供服务的机器就是服务器,至于提供什么服务不重要,重要的是要给其他人提供服务。例如:FTP服务器可以提供文件下载,SMTP服务器等等,不同的服务器能提...

    Se7eN_HOU
  • Nginx学习之HTTP/2.0配置

    哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请...

    小柒2012
  • HTTP学习

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传...

    wfaceboss
  • Nginx学习之HTTP/2.0配置

    哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请...

    小柒2012
  • 【科普】什么是HTTP

    周末一大早,我正在电脑前面浏览一些技术网站,突然女朋友大喊起来:哇,杭州又下大雪啦,快来看啊。我并没有理她,于是她跑过来拉我。

    周三不加班

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动