Web核心基础之HTTP协议

HTTP简介

对客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
主要特点:

  1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  3. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  4. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  5. 支持B/S及C/S模式。

请求报文包括三部分:

  1. 请求行:包含请求方法,URI,HTTP版本协议

  2. 请求首部字段

  3. 请求内容实体
    响应报文包含三部分:

  4. 状态行:包含HTTP版本,状态码,状态码原因短语

  5. 响应首部字段

  6. 响应内容实体
    HTTP请求方式

  7. GET :用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器

  8. POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式

  9. PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置

  10. HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效

  11. DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件

  12. OPTIONS:查询响应URI支持的HTTP方法

HTTP协议状态解析

200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙

HTTP相比HTTPS的缺点

  1. 通信使用的明文未加密,内容可能被窃听,也就是被抓包分析

  2. 不验证通信方身份,可能遭到伪装

  3. 无法验证报文完整性,可能被篡改

  4. Https就是Http加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

HTTP协议实现流程

JavaWeb第五讲 Web核心基础之HTTP协议相关推荐

  1. Web网页基础 和HTTP协议

    文章目录 方便理解 域名 域名的概念 DNS服务器 域名空间结构 域名注册 网页 HTML 超文本标记语言 静态网页和动态网页 静态网页 动态网页 特点 HTTP协议概述 HTTP协议版本 HTTP方 ...

  2. 【软件测试】Web测试基础(各类协议)面试必背

    目录 TCP/IP协议 1.概念 2.TCP/IP层次结构与OSI层次结构的对照关系图 3.TCP简介 4.TCP标志位(Flags) 5.TCP三次握手建立连接 6.TCP四次挥手关闭连接 7.三次 ...

  3. (chap1 web网络基础) TCP/IP协议层

    1. HTTP( HyperText Transfer Protocol) 超文本传输协议 2. TCP/IP协议层 应用层 应用层决定了向用户提供应用服务时通信的活动. TCP/P协议族内预存了各类 ...

  4. JavaWeb之Web核心(6)

    Web核心 前导 JavaWeb技术栈 B/S架构:浏览器/服务器架构模式,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端.浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏 ...

  5. 第四章 JavaWeb CSS入门 核心基础 基础形式 + 选择器

    谢罪:今天起晚了= =! 文章目录 什么CSS? css样式规则 CSS核心基础 行内式也称为内联样式 内嵌式 链入式 导入式 选择器 标记选择器 类选择器 id选择器 通配符选择器 什么CSS? C ...

  6. 2018-2019 20165208 网络对抗 Exp9 Web安全基础

    目录 2018-2019 20165208 网络对抗 Exp9 Web安全基础 实验内容 基础问题回答 实践过程记录 1. WebGoat准备 2. SQL注入攻击 2.1 Command Injec ...

  7. 2018-2019 20165226 Exp9 Web安全基础

    2018-2019 20165226 Exp9 Web安全基础 目录 一.实验内容说明及基础问题回答 二.实验过程 Webgoat准备 XSS攻击 ① Phishing with XSS 跨站脚本钓鱼 ...

  8. 《深入体验 飞鸽传书 开发内幕 核心基础》

    这期间,我又陆续看了张老师的飞鸽传书<深入体验 飞鸽传书 开发内幕 核心基础>,<深入体验java web开发内幕 高级特性>等几本书及光盘.总体而言,这也是目前市场上最好的, ...

  9. 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...

最新文章

  1. 计算机专业的第二批本科大学,我校22个专业入选第二批一流本科专业建设“双万计划”...
  2. oracle列名无效字符,案例学习Oracle错误:ORA-00904 invalid column name
  3. 享元模式 -- 大话设计模式
  4. [SCOI2008] 奖励关
  5. 网易云信与极客邦科技联合,发起抗击疫情行动,百家企业贡献资源
  6. git学习六:git提交忽略不必要的文件或文件夹
  7. HDU - 7009 树上游走(树的直径+容斥)
  8. 12 计算机组成原理第七章 输入/输出系统 中断系统
  9. [Selenium] 如何在老版本的Chrome 浏览器上使用selenium
  10. Android国际化-补充
  11. [Python] np.ones_like(ndarray)和np.zeros_like(ndarray)
  12. 机器学习笔记 - 基于最简单的编码器/解码器架构SegNet进行语义分割
  13. Hulu:视频广告系统中的算法实践
  14. 手机端网站服务器软件,手机端远程连接服务器的软件
  15. 大型三国战争策略型网页游戏-乐趣网《卧龙吟》
  16. linux /sys目录下的各个子目录说明
  17. win7专业版找不到ie浏览器
  18. VO、AO、执行环境和作用域链
  19. 计算机的配置鼠标,鼠标设置,详细教您鼠标设置在电脑的什么位置
  20. FreeCAD编译、安装、开发环境

热门文章

  1. leetcode-1-两数之和
  2. 什么是跨域,为什么浏览器会禁止跨域,以及实现跨域的几种方式
  3. Android 第三方库RxLifecycle使用
  4. 网络组Network Teaming
  5. SmartDraw2008破解过程总结
  6. Leetcode: Multiply Strings
  7. PendingIntent与Intent的区别
  8. Andlinux 使用记录(转)
  9. TFTP更新linux或android系统文件
  10. java反射的运用_java反射的使用