Http通信必须存在客户端和服务端

请求从客户端发出,服务器端接收后响应请求。(所以不难理解:首先是从客户端开始建立通信的

发送请求报文示例:

GET /index.htm  HTTP/1.1

Host: hackr.jp

报文解释:

GET表示访问服务器的类型:扩展:::

访问服务器类型常见的有POST/GET/HEAD等等,后续具体详解。

/index.htm表示访问的对象,即URI.这个对象资源存在服务器当中,相信大家懂。

http/1.1表示协议类型

响应请求报文示例:

HTTP/1.1 200 OK

Date:Tue,10,Jul 2012 06:50:15 gmt

Content-Length:362

Content-Type:text/html

<html>

报文解释:

HTTP/1.1 表示协议类型,200 OK表示状态码,即响应状态,扩展::

状态码不同表示含义也不同,例如404大家最熟悉了,后续会详细介绍状态码

Date:表示创建响应的日期。

后面Content-Length,Content-type,表示响应信息的内容的长度和类型。

至此,最基本的发送响应的示例讲解完毕。

Http是不保存状态的协议,何为不保存状态,拿个例子举例,就是用户登录信息,因为不保存状态,就说明,他本身不保存在登录的信息,你下次点击,还有再登录一遍。正是因为这个,才出现了cookie,因为cookie可以保存记录的信息。(这个可以当面试考点了,理解了就很容易了

http使用uri来定位资源,why?又是另一个考点,这个可以在我写的第一章里面找到答案

访问服务器方法类型:

1.GET:获取资源(垃圾的一点是在url中会出现获取信息,不安全,受到url长度限制)

2.POST: 传输实体主体(这个是例如在表单提交中,注册信息登录信息中比较常用,优点是安全,然后缺点是,post数据有大小限制)

3.PUT:传输文件。主体中包含文件内容。(缺点,安全问题,没有验证机制)

4.HEAD:获得文件头信息,包括更新日期等等。

5.DELETE:删除文件,缺点:不安全

6.OPTION/TRACE:比较少用,暂时不写。

总结如下:(来源自图解http书中)

持久连接节省通信量:

上面的知识点,让我们自然而然觉得,http由于是无状态的协议,所以每次请求,都是一个来回的事,这样就很容易引发一个问题:批量下载图片怎么实现呢? 总不会一次图片,一次通信来回,那样太慢了,于是就引出了这个的高端地方:

使用持久连接:即只要有一方不放手,就不会断,比较好理解吧。

管线化:这个实现原理不太懂,有时间再研究,作用是一次可以发多个请求,而不是一次请求,一次回来,这种,这样的原理的应用,就是Web上下载东西,桌面的同时下载是开多线程,有点扯远了。

Cookie:就是保留客户端或者服务器端的信息,规避了下次还得再重新写的问题。

服务器端响应后发送Set-Cookie信息,然后客户端收到后,即保存Cookie记录。等到下次客户端发送东西,就自动把cookie信息也发给服务器端,说着有点抽象,举个例子给大家看看就理解了。

ok 结束第二章的总结,希望有帮助,应该是比较通俗易懂的

图解Http学习第二章相关推荐

  1. 深度学习 - 第二章 - 机器学习基础

    深度学习 - 第二章 - 机器学习基础 第二章 机器学习基础 2.1 各种常见算法图示 2.2 监督学习.非监督学习.半监督学习.弱监督学习? 2.3 监督学习有哪些步骤 2.4 多实例学习? 2.5 ...

  2. Python爬虫学习第二章-1-requests模块简介

    Python爬虫学习第二章-1-requests模块简介   这一章主要是介绍requests模块的相关知识以及使用 1.requests模块简介: 概述:是python中原生的一款基于网络请求的模块 ...

  3. 计算机视觉与深度学习第二章:图像分类任务

    计算机视觉与深度学习 本文按照北京邮电大学计算机学院鲁鹏老师的计算机视觉与深度学习课程按章节进行整理,需要的同学可借此系统学习该课程详尽知识~ 第二章 图像分类任务 计算机视觉与深度学习 一.什么是图 ...

  4. ABAP学习-第二章[HELLO WORLD]

                            第二章 创建"HELLO WORLD"程序本章将介绍建立"HELLO WORLD"程序,为新建程序分配TCODE ...

  5. Ruby学习-第二章

    第二章 类继承,属性,类变量 1.如何声明一个子类 class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方 ...

  6. C/C++学习----第二章 继承和派生

    第二章 继承和派生 2.1 派生 派生类或派生类的使用者均不能访问基类的私有数据成员:对于基类的公有成员的访问,如果派生的方式不同,访问的权限也不同.派生时,不指明派生类型的,按私有派生进行派生. & ...

  7. Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-上

    第2章  IA-32处理器体系结构 2.1  基本概念 本章以程序员的视角描述Intel IA-32处理器家族机器计算机系统,包括所有的Intel兼容处理器,如AMD的速龙(Athlon)和皓龙(Op ...

  8. 零基础入门深度学习 | 第二章:线性单元和梯度下降

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作 ...

  9. 图解Http学习第一章

    今天正好闲来无事,顺便学习一波Http协议,感觉网络方面还是很重要的. 之前看过这本书,但是没总结也忘得差不多了,现在重新总结一遍,顺便当复习. 常规的Web访问流程: 这个就是比较基本的访问流程,不 ...

最新文章

  1. 利用OnAnimatorove函数控制人物的移动
  2. 《Docker技术入门与实战》——2.4 本章小结
  3. 爱问et连接mysql_什么叫数据库主机
  4. 『设计模式』就因为多收了我2块5,我追着收银员问是不是不懂设计模式--策略模式
  5. Permission denied的解决办法
  6. 面试 AI 算法岗,项目实战与比赛经验到底能为你加成多少?
  7. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
  8. 在 Mac OS X 下启用超级帐户(root)
  9. 服务器上配置tp5入口文件,TP5更改入口文件
  10. Java基础教程——字符流
  11. ARM裸机篇(三)——i.MX6ULL第一个裸机程序
  12. 交叉表 mysql_mysql交叉表查询解决方案整理
  13. android学习资源大整合(持续更新ing)
  14. webpack打包后图片显示问题
  15. 如何建立用户之间的邀请关系 / 邀请注册机制
  16. 什么是沟通能力?如何提高沟通能力?
  17. 什么是高维组合特征?
  18. 2021年危险化学品经营单位安全管理人员考试题库及危险化学品经营单位安全管理人员模拟考试题
  19. 数据库原理及应用实验报告-实验8-参照完整性
  20. windowd 10 2016 LTS 激活方法

热门文章

  1. Flask实现图片的上传、下载及展示
  2. MyBatis知识点学习
  3. 深入理解HashMap+ConcurrrentHashMap扩容的原理
  4. Java开发人员常用网站收录
  5. 操作系统——生产者-消费者问题
  6. 阿里云k8s私有仓库registry操作管理
  7. web.xml中,spring模块化加载xml方式
  8. python初学 数据分叉情况下的函数递归
  9. 一个使用Jmeter做接口性能测试的实战案例
  10. (二)原生JS实现 - 事件类方法