文章目录

  • 一、万维网概述 ★
  • 二、HTTP 协议 ( 超文本传输协议 ) ★
  • 三、HTTP 协议特点 ★
  • 四、HTTP 连接方式 ★
  • 五、HTTP 协议报文结构
  • 六、HTTP 请求报文 ★
  • 七、HTTP 响应报文 ★

一、万维网概述 ★


万维网概述 :

① 概念 : 万维网 是 超大规模 , 联机形式 的 资料空间 , 是 海量网络站点和网页集合 ;

② 定位资源 : 使用 统一资源定位符 URL 可以唯一标识 一个资源 , 这个资源可以是 文本 , 视频 , 音频 , 图片 ;

③ URL 形式 : <协议>://<主机地址>:<端口号>/<路径>

  • 协议 : http , ftp
  • 主机地址 : IP 地址 , 域名
  • 端口号 : 16 位端口号 , 0 ~ 65535

URL 不区分大小写字母 ;

④ 获取资源 : 用户点击超链接获取资源 , 服务器通过 HTTP 协议 ( 超文本传输协议 ) 将资源传输给用户 ;

⑤ 万维网工作方式 : 客户端 / 服务器 方式 , 客户端就是网页浏览器 IE , 火狐等 , 服务器 是 部署 HTTP 服务器程序 , 如 Tomcat , IIS ;

⑥ HTML 语言 : 万维网 使用 HTML 超文本标记语言 ;

二、HTTP 协议 ( 超文本传输协议 ) ★


HTTP 协议 ( 超文本传输协议 ) : 定义了 浏览器 向 服务器 请求资源的方式 , 以及 服务器 如何将资源 发送给浏览器 ; 具体流程如下 :

① 用户操作 : 用户 在浏览器上 输入 URL , 或 点击超链接 ;

② 分析 URL : 浏览器 分析 URL 链接 ;

③ 请求 IP 地址 : 浏览器 向 DNS 服务器请求 域名 对应的 IP 地址 ;

④ 解析 IP 地址 : DNS 服务器将域名解析成 IP 地址 ;

⑤ 建立 TCP 链接 : 客户端 与 服务器端建立 TCP 链接 ;

⑥ 浏览器申请资源 : 浏览器 向 服务器 发出 申请资源 命令 ;

⑦ 服务器响应 : 服务器响应浏览器的资源申请 ;

⑧ 释放 TCP 链接 : 客户端 服务器 双方 释放 TCP 链接 ;

⑨ 浏览器显示资源 : 浏览器 显示从服务器中获取到的 文本 , 图片 , 视频等资源 ;

浏览器可以只下载文字部分 ;

三、HTTP 协议特点 ★


HTTP 协议特点 :

① 无状态 : HTTP 协议是无状态的 , 两次 HTTP 访问是没有任何关联的 ;

② Cookie : 存储在用户主机中的文本文件 , 记录一段时间内的用户访问记录 , 以便网站方面可以提供个性化服务 ;

③ 无连接 : 应用层的 HTTP 协议使用 传输层的 TCP 协议 , 但是 HTTP 协议本身是无连接的 , 通信双方事先不需要建立 HTTP 连接 ;

四、HTTP 连接方式 ★


HTTP 连接方式 : HTTP 连接分为 持久连接 ( Keep-alive ) 和 非持久连接 ( Close ) ; 持久连接又分为 流水线 , 非流水线 两种连接方式 ;

  • 持久连接 : TCP 连接建立后持续很长时间 ;

    • 非流水线 类似于 GBN , SR 协议 , 可以连续发出多条数据 ; 可以提高网络效率 ;
    • 流水线 : 类似于停止-等待协议 , 发出一条数据 , 必须等待确认后 , 才能发出第二条数据 ;
  • 非持久连接 : 每次数据发送都要重新连接 TCP 连接 ;

五、HTTP 协议报文结构


HTTP 协议报文结构 : HTTP 报文分为 请求报文 和 响应报文 , HTTP 报文是面向文本的 , 报文中每个字段都是 ASCII 码字符串 ;

  • 请求报文
  • 响应报文

六、HTTP 请求报文 ★


HTTP 请求报文 :

① 请求行 :

  • 方法 : 是 命令 , 表明执行的操作 , 获取 , 删除 等 ;
  • URL : 资源地址 ;
  • 版本 : HTTP 协议版本 ;
  • CRLF : 回车换行 , 请求行结束必备 ;

② 首部行 : 说明 浏览器 , 服务器 , 报文主体 的信息 ;

  • 首部字段名 : 空格 + 首部字段值 + CRLF ( 回车换行 ) ;
  • 上述结构有若干个 ;

③ 实体主体 : 首部行 后面 是 CRLF 回车换行 , 在后面就是 实体主体 , 请求报文中 , 实体主体 , 通常不使用 ;

请求报文示例 :

GET /index.html HTTP/1.1
Host: www.baidu.com
Connection: Close
Cookie: 666

第一行 GET /index.html HTTP/1.1 是 请求行 , GET 指的是获取资源 , /index.html 表示获取的资源 URL 地址 , HTTP/1.1 说明当前的 HTTP 协议版本是 1.1 版本 ; 注意 上面 三项之间有两个空格 ; 首部行后面有一个 CRLF 回车换行 ;

第二行 是首部行 , Host 是首部字段名 , www.baidu.com 是首部字段值 ; 注意 冒号后面有一个空格 ; 末尾有一个 CRLF 回车换行 ;

第三行 和 第四行 也是首部行 ,

七、HTTP 响应报文 ★


HTTP 响应报文 :

① 状态行 :

  • 版本 : HTTP 协议版本 ;
  • 状态码 : 五种类型 , 33 种状态码 ;
  • CRLF : 回车换行 , 请求行结束必备 ;

② 首部行 : 说明 浏览器 , 服务器 , 报文主体 的信息 ;

  • 首部字段名 : 空格 + 首部字段值 + CRLF ( 回车换行 ) ;
  • 上述结构有若干个 ;

③ 实体主体 : 首部行 后面 是 CRLF 回车换行 , 在后面就是 实体主体 ;

状态码类型 :

  • 1xx 状态码 : 表示 通知信息 , 如 收到请求 , 正在处理请求 ;
  • 2xx 状态码 : 表示 成功 , 如 202 Accepted ;
  • 3xx 状态码 : 表示重定向 , 如 完成请求还需要进一步操作 ;
  • 4xx 状态码 : 表示客户差错 , 请求无法完成 , 如 404 Not Found ;
  • 5xx 状态码 : 表示服务器差错 , 如 服务器失效 , 无法完成请求 ;

【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )相关推荐

  1. java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...

    经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...

  2. 计算机网络-应用层-万维网WWW

    这次的主要内容是: (1)域名系统DNS (2)万维网和HTTP协议以及万维网的两种不同的搜索引擎 (3)电子邮件的传送过程 (4)动态主机配置协议DHCP的特点 (5)网络管理的三个组成部分 (6) ...

  3. 计算机网络应用层协议分析总结

    1.应用层协议原理 1.1.网络应用程序体系结构 C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求.客户机主机既可能有时打开,也可能总是打开.C/S结构之下,客户机 ...

  4. 计算机网络应用层之HTTP协议

    一.什么是HTTP协议 HTTP是HyperText Transfer Protocol即超文本传输协议的缩写,是Web应用层协议之一. HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序, ...

  5. 万字+图片解析计算机网络应用层

    1. 应用层概述 (1).前情回顾 物理层:解决使用何种信号来传输比特的问题 数据链路层:解决分组在一个网络(或一段链路)上传输的问题 网络层:解决分组在多个网络上传输(路由)问题 运输层:解决进程之 ...

  6. 计算机网络应用层详解

    文章目录 一.计算机网络应用体系结构 二.网络应用通信基本原理 三.域名系统(DNS) 1. 域名系统的基本概念 2. 域名服务器 3. 域名解析过程 四.万维网应用 1. 万维网应用结构 2. HT ...

  7. 计算机网络-应用层-Web和HTTP

    应用层-Web和HTTP Web和HTTP HTTP概况 非持续连接和持续连接 采用非持续连接的HTTP 往返时间 采用持续连接的HTTP HTTP报文格式 HTTP请求报文 HTTP响应报文 用户与 ...

  8. 计算机网络 - 应用层(学习日志)

    借鉴于:CyC大佬(抄的部分,加自己理解以及补充) 一,域名 根域名(.) 顶级域名(com) 二级域名(google) ... DNS(分布式数据库).存储了主机名和IP地址之间的转化.也就是我们设 ...

  9. HTTP协议漫谈 - HTTP协议历史和报文结构

    前言 去年下半年以来各种俗事缠身,所以有段时间没有更新博客了.过完年回来事情不多,项目需求也比较少,又可以愉快的写博客了(≧∇≦)ノ 这几天在网络上搜罗了一些HTTP协议的相关知识,并对这些知识做了一 ...

最新文章

  1. php中getdistance函数_php计算两个经纬度地点之间的距离
  2. html 嵌入vb脚本,从嵌入在HTML中的VBScript访问VB6收藏品
  3. android java 圆角_java – Android:给一个webview圆角?
  4. Intel Realsense D435小车避障 摄像头在高于一定平面h时的深度map公式计算(深度d与视场角视角α的关系)
  5. why2cs学习之路
  6. 子类构造器Constructor是否可被Override(重写)
  7. JavaScript PopUp生成器
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的账单管理系统
  9. js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法
  10. 基于AWT、Swing的GUI编程 - 多个命令共享同一个监听器类
  11. java cronexpression_关于CronTrigger 的cronExpression用法
  12. C++模板(函数模板/类模板)
  13. 神经网络算法详解 03:竞争神经网络(SONN、SOFM、LVQ、CPN、ART)
  14. 在cmd的命令下 用Mysql中建立一个表
  15. 自然底数e究竟“自然”在哪?
  16. php 处理png图片白色背景色改为透明色
  17. 不懂就学——什么是input和output?
  18. freemarker如何获取当前时间或者时间戳?
  19. Linux 压缩文件和文件打包。
  20. matlab动态电路仿真,基于Simulink建立的RLC串联动态电路仿真模型

热门文章

  1. [MySql] - Windows MySql 8.x 手动zip包安装与外网访问登录权限设定
  2. 108-学习如何格式化字符串
  3. BZOJ4076 : [Wf2014]Maze Reduction
  4. MongoDB (二) MongoDB 优点
  5. 4.3、Libgdx启动类和配置
  6. 马尔代夫旅游选岛全功略
  7. java--static关键字
  8. DataList编辑、更新、取消、删除、分页(分页控件 AspNetPager.dll)
  9. stm32断言的使用
  10. 2.6_Database Interface JDBC及驱动类型