学习资源主要为:@小坦克HTTP相关博客

1、HTTP简介:

  HTTP协议是Hyper Text Transfer Portocol(超文本传输协议)的缩写,它是一种通信协议,允许将超文本(即:html文档)从Web服务器传输到本地浏览器的传输协议。

目前我们使用的是HTTP/1.1版本。

2、HTTP工作原理

  HTTP协议工作于客户端-服务端架构。浏览器作为HTTP的客户端,通过URL向HTTP服务端发送请求,HTTP服务端在接到请求后,向客户端发送响应信息。

  (在HTTP请求的客户端与服务器之间,有可能还存在“代理服务器”,客户端在请求时,先将请求发送到打理服务器,然后代理服务器请求服务器再进行返回。一般代理服务器都具有缓存的功能,这样可以提高访问速度。)

3、URL说明

  因客户端请求是通过URL的,所以针对URL进行简单的说明:

  URL是Uniform Resource Locator(统一资源定位符)的缩写,用于描述一个网络上的资源。

基本格式为:

schema://host[:port]/path/.../[?query-string][#anchor]

schema:指定使用的协议;

host:是指服务端的IP地址/域名;

port:端口,一般默认使用80端口,可以不写,如果使用的是其他接口,就需要带端口号。

path:是指请求的路径;

query-string:请求传递的参数;

anchor:锚;

4、消息结构

(1、请求消息

request消息分为3部分:请求行、请求头和请求体。在请求头和请求体之间会有一个空行。

请求行中,主要显示:请求方法、请求资源路径和协议版本号;

(2、响应消息

response消息和request消息结构基本一致,包括响应行、响应头和响应体。

5、http的无状态与connect:keep-alive

无状态是指协议对于处理事务没有记忆能力,服务器不知道客户端是什么状态。

从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

HTTP学习记录:一、协议基础的更多相关文章

  1. Python 第五阶段 学习记录之---Django 基础

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  2. webserive学习记录2-cxf框架基础使用

    cxf是一个webservice的框架,类似的还有axis,下面说一下cxf的基本使用. 首先要下载cxf的文件,然后要在项目中引入jar包,当然也可以通过maven进行管理.我用的是最新的3.2.1 ...

  3. TCP/IP学习笔记12-- IP协议基础

    IP(internet protocol, 网际协议) IP相当于OSI参考模型中的第三层 -- 网络层. --网络层的下一层--数据链路层的主要作用是在 同一种数据链路 的节点之间进行包传递,而一旦 ...

  4. 前端学习记录 week 1

    前端学习记录 week 1 基础知识 CSS盒模型 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用.CSS盒模型本质上是一个盒子,封 ...

  5. Linux学习(1)- TCP/IP网络协议基础

    Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...

  6. 学习记录-java基础部分(一)

    学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...

  7. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

  8. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  9. SpringCloud基础教程学习记录

    这个学习记录是学习自翟永超前辈的SpringCloud的基础教程. 自己写这个教程的目的主要是在于,想要更凝练总结一些其中的一些实用点,顺便做个汇总,这样自己在复习查看的时候更加方便,也能顺着自己的思 ...

  10. MVC+Ext.net零基础学习记录(五)

    继MVC+Ext.net零基础学习记录(四),在后面我在既有的项目上又添加了一个子项目,还用前面提到的方法,进行主项目中引用DLL,然后子项目中生成事件中使用mkdir 进行拷贝 发现一个下午就总是报 ...

随机推荐

  1. vue+hbuilder 打包成移动app

    查看了很多网上写的改来改去都在手机上运行不起来,运行起来又是白屏:最后放弃,自己结合文档搞吧! 1. 项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPubl ...

  2. 第99:真正理解拉格朗日乘子法和 KKT 条件

  3. Json解析报错: Error is : Unescaped control character...的解决方法

    在利用json-framework来实现json解析的过程时,会出现"-JSONValue Failed. Error is : Unescaped control character&qu ...

  4. java Class类的用法示例

    @SuppressWarnings("unchecked") public void func() throws InstantiationException, IllegalAc ...

  5. IDEA debug模式鼠标悬停提示变量值

  6. 003-SaltStack入门篇之远程执行和配置管理

    第一条命令: [root@linux-node1 master]# salt '*' test.ping linux-node2.example.com: True linux-node1.examp ...

  7. 如何在Linux下安装Tomcat

    上篇文章写到了Linux下安装JDK1.8,这篇文章详细阐述一下 如何在Linux下安装Tomcat!!!有啥问题可以留言,博主每天都会看博客的. 准备步骤和方法和以前一样,博主用的工具是XShell ...

  8. 【python基础】元组方法汇总

    一.定义 用于存储一组数据的有序序列, 一旦创建, 元组中的各个元素不允许修改 二.特点 1.元组有序; 2.元组是不可变的数据类型;不可修改; 3.元组中可以存储重复的数据; 4.元组中可以同时存储 ...

  9. MySQL——Alias

    查询时,当表名很长或者执行一些特殊查询的时候,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替表原来的名称. 设置别名为表设置别名 <表名> [AS] <别名 ...

  10. vue 路由拦截器和请求拦截器

    路由拦截器 已路由为导向 router.beforeEach((to,from,next)=>{ if(to.path=='/login' || localStorage.getItem('to ...