作者技术有限,这篇博文都是结合网上的文章和自己的理解而写的,若存在错误,请无私指出,十分感谢!

协议,就是一种标准,即大家都要遵守的标准。

举个简单的例子:在中国,几乎人人都会讲普通话,不同地区的人有不同的方言,倘若各个人都讲自己的方言,这样势必很凌乱,你听不懂我的,我也听不懂你的。于是就得寻找一种人人都能听懂的语言(标准),就是普通话。

计算机也是如此,人类发明了计算机,单个计算机并不会发挥多大的功能,只有将它们联合起来,才能体现它们的强大,把计算机比作人类的话,计算机之间的沟通(通信)也要遵守某种标准,于是TCP/IP协议族就出现了,Http协议就是 TCP/IP 协议族的一部分。

Http协议建立通信时,通常需要有两端:客户端—服务器端,在浏览器中,客户端就是浏览器,如Chrome,Firefox等,服务器端就是各种服务器。

在程序语言中,Http客户端 已经被封装在一个类库中,如Java中的HttpClient类,那服务器端暂时理解为客户端所要访问的网站:http://www.baidu.com
 
Http通信的步骤:
1、首先需要通信的两方,客户端(HttpClient、浏览器等)和服务器端。
2、建立请求(HttpGet、浏览器开始打开网站)。
3、服务器收到请求,根据请求的类型返回相应的数据(HttpResponse)。客户端是浏览器的话,通常以网页的形式展现给用户;客户端如:HttpClient的话,则需要自行取出响应体里面的数据。
4、Http响应里面(HttpResponse)有响应体HttpEntity,根据响应的状态码判断请求是否成功(200,404等)。
5、看看响应体里面的内容,是文本还是文件流之类的,做相应的操作。
 
Http的特点:
1、Http协议是无状态的,即响应了请求(HttpGet)之后,客户端与服务器端之间的链接就中断了。
2、超文本的,即不止文本,还可以是其它常见的数据:音频、视频等。
3、通用的,平台无关的。
 
Http请求的种类:
GET和POST,其它方法已经逐渐被淡化,不做详解。
GET请求,由名字可知就是用于从服务器获取资源,无论进行多少次请求,所得到的数据都是相等的。
POST请求,由名字可知是用于向服务器提交数据,可以提交很多内容,无上限。

Http协议的理解的更多相关文章

  1. HTTPS强制安全策略-HSTS协议阅读理解

    https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security [阅读理解式翻译,非严格遵循原 ...

  2. Http协议与TCP协议简单理解(转)

    在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解.TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上 ...

  3. Http协议与TCP协议简单理解

    TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通 ...

  4. HTTP协议强化理解

    一:第一波 1.  是什么? 答:是一种定义超文本在网络中如何进行传输的协议!   所有的WWW上的文件都必须遵循! 是基于TCP/IP. 传输路径:  客户端<——>服务端  (全双工) ...

  5. TeamTalk自定义IM协议的理解

    一.TeamTalk自定义IM协议 TeamTalk自定义IM协议是一种基于protocol buffer的消息传递协议,protocol buffer可以自定义消息格式.protocol buffe ...

  6. TCP/UDP协议、理解三次握手四次挥手、Socket

    一.什么是socket? 中文名叫套接字,是对底层的 TCP IP UDP 等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议. 在程序员的言论,他就是一个封装好的模块,要 ...

  7. 关于GPL协议的理解(开源与商用、免费与收费的理解)

    编者:请特别注意看暗红色粗体标注的那几句话,总结下来有下面几点: 如果你用了我的 GPL软件,那么你的软件也必须要开源,否则就不能使用我的软件,你是否把你的软件商用和我没关系 Oracle 卖的不是软 ...

  8. 从敲入 URL 到浏览器渲染完成、对HTTP协议的理解

    1. 大致过程 当你这样子回答的时候: 用户输入 url 地址,浏览器查询 DNS 查找对应的请求 IP 地址 建立 TCP 连接 浏览器向服务器发送 http 请求,如果服务器段返回以 301 之类 ...

  9. RTMP协议的理解

    RTMP协议:real time message protocol 工作原理: 先采集摄像头视频和麦克风音频信息,再进行音视频的编码(mpeg),通过FMLE(Flash Media Live Enc ...

随机推荐

  1. Leetcode 461.汉明距离 By Python

    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目. 给出两个整数 x 和 y,计算它们之间的汉明距离. 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y ...

  2. android第二课:运行你的应用

    如果你按照前面课程创建了 Android 项目,它包含了可以立即运行的 "Hello World"源代码文件. 由两该条件来决定如何运行你的应用:你是否拥有运行着 Android ...

  3. mathML如何在谷歌浏览器进行展示

    前几天不是做了个word公式的解析吗,就是office插入的公式是个xmlObject对象,读出来就是个String,所以要进行转换才能在网页上展示,其实我对这方面也不是很了解,然后各种百度解决方案, ...

  4. CRT&EXCRT 中国剩余定理及其扩展

    前言: 中国剩余定理又名孙子定理.因孙子二字歧义,常以段子形式广泛流传. 中国剩余定理并不是很好理解,我也理解了很多次. CRT 中国剩余定理 中国剩余定理,就是一个解同余方程组的算法. 求满足n个条 ...

  5. redux与react-redux

    Redux是一个数据状态管理插件,论是移动端还是 pc 端,当你使用 React 或者 vue 开发组件化的 SPA 程序时, 组件之间共享信息是一个非常大的问题.在react开发中,使用 React ...

  6. Linux下JDK+Eclipse安装

    Ubuntu版本14.04 JDK8_144 eclipse最新下载 注:原本安装JDK7配置好环境后报错,原来是最新eclipse的一个功能只有JDK8支持,若想使用JDK7需要注释某条代码 JDK ...

  7. Spring Boot Actuator的端点

    Spring Boot Actuator的关键特性是在应用程序里提供众多Web端点,通过它们了解应用程序 运行时的内部状况.有了Actuator,你可以知道Bean在Spring应用程序上下文里是如何 ...

  8. 获取Methods成员方法类

    位于java.lang.reflect.Method包中 getModifiers() 成员方法的修饰符 getName() 成员方法的名字 getReturnType() 成员方法的声明类型 get ...

  9. Swagger介绍-一套流行的API框架

    简介 号称:世界最流行的API框架 官网:http://swagger.io/ 解决什么问题:在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档. 实例代码位置:ht ...

  10. ML面试题网站及ML模型网站

    一.面试题网站 1)最全:http://www.epx365.cn/jyzn/201839501.html 2)七月在线:https://blog.csdn.net/movie14/article/d ...