1    协议类型

l  HTTP  超文本传输协议 通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定

l  HTTPS 安全超文本传输协议

l  FTP 文本传输协议

l  TCP  网络控制协议

l  IP  互联网协议

l  UDP 用户数据协议

2    什么是http协议

总结来说:http协议即在浏览器和服务器通信之间的一个规则,即协议;它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息

HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。

当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。

3    http协议与接口的关系

通俗的来讲接口就相当于一件工具,当你要用它的时候通过http协议中的请求和响应去申请和获取;

协议方式多种,可以通过不同的协议获取相应的对象;

4    http协议版本

(1)http协议1.0与1.1

l  http1.0每次请求都要建立新的TCP连接,连接不能复用;

l  http1.1连接可以复用;

l  http1.1在request消息头增加host,http1.0没有这个域

l  http1.1增加了对put、delete、connet等request方法的支持;

(2)http1.1与http2

l  http2采用二进制格式而不是文本格式;

l  http2完全的多路复用;

l  http2可以让服务器主动把响应推送到客户端缓存中;

5    http协议与HTTPS协议

l  https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

l  http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

l  http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

l  http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

6    http协议的特点

l  简单快速:客户端向服务器发送请求时,只需传送请求方法和路径;

l  灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由content-type加以标记;

l  无连接:限制每次只处理一个请求,处理完后即断开连接;http协议每次响应完成后,会断开与客户端的连接;

l  无状态:http是无状态协议,无状态是指协议对于事务处理没有记忆能力;由于服务器断开了连接,就无法知晓连接间的关系。

7    http协议的生命周期

(1)客户端发起请求到API层

(2)API接收到客户端发起的用户请求;(API对业务逻辑进行验证)

(3)API将用户输入的数据发送给数据库;

(4)数据库将查询数据库的条目返回给API

(5)API将返回成功或失败的状态码发给客户端;

(6)客户端将返回信息提示给用户;

8    辅助知识点

tcp/ip三次握手

例:客户端向服务端发起沟通

服务端先确认哪个客户端,将客户端的信息发回客户端

客户端收到服务端信息,确认无误后再发给服务端

沟通建立

OSI七层模型

OSI定义了网络互连的七层框架

URL与URI

URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)。

URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准)。

关系:

URI 属于 URL 更高层次的抽象,一种字符串文本标准。

就是说,URI 属于父类,而 URL 属于 URI 的子类。URL 是 URI 的一个子集。

二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)。 大家把浏览器地址栏里访问网站的地址认为是URL就好了,也就是以HTTP/HTTPS开头的URI子集。

http协议(一):http协议基础知识的更多相关文章

  1. http协议(一)基础知识

    我自己写的随笔一般是偏学习笔记性质的,或者一点个人理解,适合新人,大牛可以忽略这个...... 参考书籍——<图解http> 当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就 ...

  2. [ios]objective-c 协议和委托 (重点基础知识)

    objective-c protocol delegateprotocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现. delegate-委托,顾名思义就是委托 ...

  3. TCP/IP协议(二)tcp/ip基础知识

    今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...

  4. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  5. IOS Socket 01-网络协议基础知识

    1. 网络参考模型 OSI参考模型                                          TCP/IP参考模型 2. 七层简述 1)物理层:主要定义物理设备标准,如网线的接 ...

  6. ARP协议的基础知识

          关于ARP协议的基础知识 1.ARP的工作原理 本来我不想在此重复那些遍地都是的关于ARP的基本常识,但是为了保持文章的完整性以及照顾初学者,我就再啰嗦一些文字吧,资深读者可以直接跳过此节 ...

  7. TCP/IP 和HTTP 协议基础知识

    来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...

  8. TCP/IP网络协议基础知识集锦[转]

    引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...

  9. 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识

    第41章      HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...

  10. 【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

    第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) ...

随机推荐

  1. 迁移桌面程序到MS Store(9)——APPX With Desktop Extension

    在<迁移桌面程序到MS Store(8)——通过APPX下载Win32Component>中我们讨论了通过APPX来下载Service部分的安装包.但是纯UWP的客户端并不能自动运行下载的 ...

  2. [Vue 牛刀小试]:第十四章 - 编程式导航与实现组件与 Vue Router 之间的解耦

    一.前言 在上一章的学习中,通过举例说明,我们了解了 Vue Router 中命名路由.命名视图的使用方法,以及如何通过 query 查询参数传参,或者是采用 param 传参的方式实现路由间的参数传 ...

  3. Django中间件加载原理

    假设我们有如下中间件: setting.py文件 MIDDLEWARE = [ 'django.middleware.A', 'django.middleware.B', 'django.middle ...

  4. Net Core 2.1 日志记录框架NLog+Mysql配置

    NLog是什么? 这里还是简单介绍一下吧,为了让小白也知道.NLog是一个灵活的免费日志记录平台,适用于各种.NET平台,包括.NET Core.NLog可以通过简单地配置就可以可以很方便的写入多个日 ...

  5. vue中局部组件的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. iOS自动化探索(十)代码覆盖率统计

    iOS APP代码覆盖率统计 今年Q3季度领导给加了个任务要做前后端代码覆盖率统计, 鉴于对iOS代码代码比较熟就选择先从iOS端入手,折腾一整天后终于初步把流程跑通了记录如下 覆盖率监测的原理 Xc ...

  7. Maven打包成Jar文件时依赖包的问题

    我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...

  8. FTP工具便携版 FileZilla 3.38.0

    FileZilla 客户端是一个快速可靠的.跨平台的FTP,FTPS和SFTP客户端.具有图形用户界面(GUI)和很多有用的特性.由NoCmd提供的 FileZilla Client 中文便携版,具有 ...

  9. Elasticsearch(一)开启外网访问

    1. 设置Elasticsearch对外访问的Host 修改Elasticsearch配置文件 elasticsearch.yml : network.host: 128.24.108.84  //在 ...

  10. AKKA 集群中的发布与订阅Distributed Publish Subscribe in Cluster

    Distributed Publish Subscribe in Cluster 基本定义 在单机环境下订阅与发布是很常用的,然而在集群环境是比较麻烦和不好实现的: AKKA已经提供了相应的实现,集群 ...