1、概念:

  “超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

  设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

2、http协议和tcp协议的区别:  

  1),http对应于应用层

  2),Tcp协议对应于传输层

  3),http协议是在Tcp协议之上建立的,http在发起请求时通过tcp协议建立起连接服务器的通道,请求结束后,立即断开tcp连接

  说明:从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,

  如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接Keep-Alive不会永久保持连接,它有一个保持时间,

  可以在不同的服务器软件(如Apache)中设定这个时间。

  4),Http是无状态的短连接,而TCP是有状态的长连接

3、http特点:

  简单快速          灵活            无连接         无状态

4、http报文组成部分:

  

  请求报文:请求行(http方法 页面地址 http协议版本 ) + 请求头(key + value) +空行 + 请求体

  响应报文:  状态行(http协议版本 状态码 状态描述)+ 响应头 + 空行 + 响应体

5、http方法:

  GET            ----       获取资源

  POST          ----    传输资源

  PUT            ----       更新资源

  DELETE     ----       删除资源

  HEAD         ----       获得报文首部

GET 和 POST 区别是什么?

  1)、get会把请求的参数放在url后面,例如www.xxx.xx?id=1 。也就是别人通过浏览器就可以看到。post请求会把参数放在request body。相对来说,post的安全性更高。

  2)、长度限制。如果参数有很多,对get的长度也会有限制,不同浏览器的限制不一样。

  3)、get请求的内容,浏览器会主动缓存,而post不会,除非手动设置。

  4)、get仅仅支持url编码格式,post支持多种

  5)、post对参数类型没有限制,get仅支持ASCII字符。

  6)、后退页面时,get没有影响,post会再次提交请求。

6、http状态码:

  1xx:指示信息-表示请求一接收,继续处理

  2xx:成功-表示请求被成功接收(200请求成功,206客户发送带有Range头的GET请求,服务器完成了它)

  3xx:重定向(301请求页面转移到新url,302请求页面临时转移到新url,304浏览器有缓存,可以继续使用)

  4xx:客户端错误-请求有语法错误或请求无法实现(400语法错误,401请求未经授权,403请求页面被禁止,404请求资源不存在)

  5xx:服务器错误-服务器未能实现合法请求(500服务器错误,503服务器过载或宕机)

7、http管线化:

  HTTP管线化是将多个HTTP要求(request)整批提交的技术,而在传送过程中不需先等待服务端的回应。管线化机制须通过永久连接(persistent connection)完成,

仅HTTP/1.1支持此技术(HTTP/1.0不支持),并且只有GET和HEAD要求可以进行管线化,而POST则有所限制。此外,初次创建连接时也不应启动管线机制,

因为对方(服务器)不一定支持HTTP/1.1版本的协议。

HTTP协议简单理解的更多相关文章

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

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

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

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

  3. 【转载】Http协议与TCP协议简单理解后续

    写了这么长时间的代码,发现自己对TCP/IP了解的并不是很透彻.虽然会用C#的HttpClient类来进行网络编程,也可以使用Chrome的开发者工具来检测每一次的HTTP请求的报文头与报文体,也知道 ...

  4. 【转载】Http协议与TCP协议简单理解

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

  5. http以及http协议简单理解

    HTTP协议是超文本传输协议的缩写,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议:HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)HTTP作 ...

  6. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

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

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

  8. [svc]简单理解什么是rpc调用?跟restapi有何区别?

    什么是rpc调用 restapi调用方式是对数据的crud. 常见的我们写flash写个api,或者借助django drf写个标准的resetapi,一个url可以借助httpget post pu ...

  9. tcp协议简单了解

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

随机推荐

  1. SingletonPattern(单例模式)-----Java/.Net

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一. 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创建自己的 ...

  2. MacBook Pro 入手一年了,到底香不香?

    最近又有小伙伴问到底值不值得入手一台 MacBook Pro,松哥自己在 2018 年 10 月份的时候入手了一台,到现在为止,也用了一年多了,今天就来和小伙伴们聊一聊使用感受,至于到底值不值,需要大 ...

  3. Spring是什么,Spring容器提供了那些功能,Spring的工作机制

    spring是什么 spring 是一个轻型的容器,是J2EE规范的轻量级实现,可以一站式开发,其中提供了,bean工厂,用以构造我们需要的Model ,spring 是非侵入式的,spring应用中 ...

  4. axios中请求传值方式

    日常开发中与后端联调,可能需要的数据不同,所传值也有所不同 1.如果是data方式,设置请求头为:并且直接返回data就可以  raw axios.defaults.headers['Content- ...

  5. const和volitale

    1. const只读变量 const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间(可以通过指针修改) const修饰的全局变量在全局数据区分配空间(指针也修改不了) con ...

  6. 【PCIE-3】---PCIE设备的枚举扫描(经典好文)

    前面两个小节大致总结了下PCIE的基本知识,算是扫盲篇吧.本文主要总结PCIE设备的枚举扫描过程,此部分才是PCIE模块的重点,无论是在BIOS下还是系统驱动下都会用到. 按照国际惯例,先列问题: 1 ...

  7. 深入理解es6中的Promise

    https://www.jianshu.com/p/9e4af5b77253 https://zhuanlan.zhihu.com/p/30797777 https://segmentfault.co ...

  8. importlib 根据字符串导入模块

    应用: Django中间件,rest framework 组件的全局配置文件 import importlib path = "abc.def.foo" module_path,c ...

  9. 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(4) - 图书列表界面

    在前三章中我们完成了登录窗口, 并掌握了使用Conductor来切换窗口, 但这些其实都是在为我们的系统打基础. 而本章中我们就要开始开发系统的核心功能, 即图书管理功能了. 通过本章, 我们会接触到 ...

  10. Asp.Net Core 3.1 Api 集成Abp项目依赖注入

    Abp 框架 地址https://aspnetboilerplate.com/ 我们下面来看如何在自己的项目中集成abp的功能 我们新建core 3.1 API项目和一个core类库 然后 两个项目都 ...