客户端和服务器端:

  • 仅从一条通信路线来说,服务器端和客户端是确定的;
  • HTTP协议规定,通信一定是先从客户端开始建立,服务器端在没有接受到请求之前不会发送响应;

不保存状态:

  • HTTP是无状态协议,对发送过的请求和响应都不做持久化处理,即不会根据之前的请求和响应的状态进行本次请求处理;
  • 这是为了更快地处理大量事务;
  • 使用cookie技术可以进行弥补;

请求/响应报文:

  • 请求报文     //请求方法、请求URL、协议版本、可选请求首部字、内容实体
GET    /index.html    HTTP/1.1
Host: hackr.jp ------------------------------------
POST /form/enrty HTTP/1.1 Host: hackr.jp
Connection: keep-alive
Connection-Type: application/x-www-form-urlencoded
Content-Length: 16 name=ueno&age=37
  • 响应报文   //协议版本、状态码、解释状态码的原因短语、可选的响应首部字段、响应主体
HTTP/1.1    200   OK 

Date: Tie, 10 Jul 2012 06:50:15 GMT
Content-Length: 362
Content-Type: text/html <html>
......................
  • 请求方法:HTTP/1.1

    • GET:用来请求访问已被URI识别的资源;指定的资源经服务器端解析后返回响应内容;即:

      • 请求文本,直接返回;
      • 请求CGI(通过网关接口)那样的程序,则返回执行后输出的结果;
    • POST:用来传输实体的主体;
    • HEAD:和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间;
    • OPTIONS:用来查询针对请求URI指定资源支持的方法;
    • PUT:传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置;由于HTTP/1.1的PUT方法自身不带验证机制,因此一般不采用;
    • DELETE:删除文件,与PUT方法相反;但也不不带验证机制,一般不采用;
    • TRACE:让web服务器端将之前的请求通信返回给客户端;可以用来查询发送出去的请求是怎样被加工修改的;但不常用且易引发XST(跨站追击);
    • CONNECT:要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信;

持久连接:早期的HTTP协议中每进行一次通信就断开TCP连接;目前的HTTP协议已经实现了持久化连接;只要任意一端没有明确提出断开连接,则保持TCP连接状态;

管线化:从前发送请求后需等待并收到响应才能发送下一个请求;持久化连接实现之后,可以实现管线化技术,即同时并行发送多个请求;

Cookie的状态管理://Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态;

  • 客户端:cookie会根据从服务器端发送的响应报文内觉得Set-Cookie的首部字段信息通知客户端保存Cookie;当下次客户端往服务器端发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去;
  • 服务器端:发现客户端发送过来的Cookie之后,会去检查究竟是从哪一个客户端发出的连接请求,然后对比服务器上的记录,最后得到之前的状态信息;

HTTP基础02--HTTP协议简介的更多相关文章

  1. UNIX/Linux网络编程基础:应用层协议简介

    目录 1.HTTP协议 2.FTP协议 3.TELNET协议 4.NFS协议 1.HTTP协议 应用层协议HTTP协议是Web的核心.HTTP协议在Web的客户程序和服务器程序中得以实现,运行在不同系 ...

  2. C#3.0新增功能09 LINQ 基础02 LINQ 查询简介

    连载目录    [已更新最新开发文章,点击查看详细] 查询 是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据 ...

  3. J2EE基础之Web服务简介

    J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...

  4. HTTP 协议简介

    HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议  一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是 ...

  5. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

  6. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  7. web应用,http协议简介,web框架

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  8. 转:SATA协议简介

    SATA协议简介 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/FA99999/article/details/70738724 1.概述 本文档主 ...

  9. 网络编程基础:网络基础之网络协议、socket模块

    操作系统(简称OS)基础: 应用软件不能直接操作硬件,能直接操作硬件的只有操作系统:所以,应用软件可以通过操作系统来间接操作硬件 网络基础之网络协议: 网络通讯原理: 连接两台计算机之间的Intern ...

  10. web开发基础之HTTP协议

    HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...

随机推荐

  1. iOS7: 如何获取不变的UDID

    如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使 ...

  2. [Effective JavaScript 笔记]第25条:使用bind方法提取具有确定接收者的方法

    js里方法和属性值为函数,就像一个东西两种称呼一个样,比如土豆,也叫马铃薯,一个样.既然一样,那就可以对对象的方法提取出来为函数,然后把提取出来的函数作为回调函数直接传递给高阶函数. 高阶函数是什么 ...

  3. 最短路&&最小生成树水题

    训练赛20151122 5:00:00     Overview Problem Status Rank Discuss Current Time: 2015-11-23 17:33:18 Conte ...

  4. HDOJ 1162

    Eddy's picture Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  5. docker的四种网络模式

    /* 1. host模式 : docker run 使用 --net=host指定 docker使用的网络实际上和宿主机一样 2. container模式: 使用 --net=container:co ...

  6. 【云计算】基于Ansible的自动部署平台化思路

    目标: 1.自动化—支持命令行.webui.api调用 2.支持基础命令.脚本.复杂任务编排.满足生产环境各类模块自动化部署需求 3.满足生产环境(开发.测试.线上)性能.可靠性.安全性要求 4.流程 ...

  7. 【python】Python标准库defaultdict模块

    来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...

  8. 【python】a[::-1]翻转

    设有一个元组或者列表 a = (1,2,3,4) b = [1,2,3,4] 则a[::-1]和b[::-1]的含义是将元组或列表的内容翻转 a[::-1] # 结果为(4,3,2,1) b[::-1 ...

  9. Codeforces 389B(十字模拟)

    Fox and Cross Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submi ...

  10. 解决Unable to reach a settlement: [diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1] and [curve25519-sha256@li

    SharpSSH或JSCH使用diffie-hellman-group1-sha1和diffie-hellman-group-exchange-sha1密钥交换算法,而OpenSSH在6.7p1版本之 ...