第一章:Http概述

第一章:Http概述


引言

web浏览器、服务器和相关的web应用程序都是通过http相互通信的,http是现代全球英特网中使用的公共语言。

本章主要内容

1、web客户端与服务器是如何通信的
2、资源(表示web内容)来自何方
3、web事务(请求与响应)是怎样工作的
4、http通信所使用的报文(请求报文/响应报文)
5、底层TCP网络协议
6、不同的http协议变体

1.2web客户端与服务器

web内容都是存储在web服务器上的。web服务器所使用的是http协议,因此也经常称web服务器为http服务器。

web客户端:通常可以认为是浏览器(IE、Firefox、Chrome)
http服务器:种类很多(apache、nginx、tomcat等)

客户端服务器模型

1.3资源

web服务器是web资源的宿主

web资源分为

1、静态资源(html、txt、png等)
2、动态资源(服务器生成资源比如访问数据库或第三方网关获取的数据)

MIME(媒体类型)

MIME是一种文本标记,表示一种主要的对象类型和一种特定的子类型,中间由一条斜杠(/)分隔

比如:text/html,text/plain,image/jpeg,image/gif

URI(统一资源标识符)

URL(统一资源定位符)也是最最常用的
    通常包含三部分:方案、服务器地址、资源地址
    比如:http://www.baidu.com/index.php
URN(统一资源名)并不流行

1.4事务(http事务)

http事务指的是一次完整的请求响应过程,并不是我们通常理解的数据库事务概念。

1.4.1方法

1.4.2状态码

1.4.3web页面可以包含多个对象


1.5报文

http报文是由一行一行的简单字符串组成的。http报文是纯文本,不是二进制代码,所以很方便对其进行读写。

报文分类

请求报文
响应报文

报文格式

起始行
首部字段(我自己这么叫:请求头/响应头)
主体(请求体/响应体)

备注:起始行和首部都是文本形式而且都是结构化的,而主体不是,主体中可以是任意二进制数据内容当然也可以是文本内容。

请求报文格式



响应报文格式

1.6连接

1.6.1 TCP/IP

http是个应用层协议.http无需惯性网络通信的具体细节,它把联网的细节都交给了通用可靠的因特网传输协议TCP/IP.


tcp/ip网络模型



1.6.2 连接

基本的浏览器连接处理
1、浏览器从URL中解析出服务器主机名
2、浏览器将服务器主机名转换为ip地址
3、浏览器将端口号从URL中解析出来
4、浏览器建立一条与web服务器的TCP连接
5、浏览器向服务器发送http请求报文
6、服务器向浏览器发送http响应报文
7、关闭连接、浏览器显示文档浏览器


建立tcp连接三次握手


1.7协议版本

http版本主要有
http 0.9:已经不用了
http 1.0:有遗留
http 1.1:目前主流
http 2.0:正在大力推广
备注:我们常听到的https并非指某个版本而是在http协议加上了基于ssl或tls封装。

h**ttps通信原理**

1.8web结构组件

代理:位于客户端和服务器之间的http中间实体
缓存:http的仓库,使常用的页面和内容副本可以保存在离客户端更近的地方
网关:连接其它应用程序的特殊web服务器
隧道:对http通信报文进行盲转发的特殊代理
Agent代理:发起自动http请求的半智能web客户端

http协议主要特征

1、支持客户端/服务器端通信模式
2、协议简单方便快速
3、灵活:Http协议允许客户端和服务器端传输任意类型任意格式的数据对象,由Content-Type指定数据类型
4、面向无连接(服务器响应之后立即断开,http1.0之后可以指定为无连接或长连接)
5、面向无状态(客户端和服务器都不记忆状态,客户端传输数据就更少也更简单高效了,与此同时也引出了新的问题。)

总结

本章主要简单介绍了http协议和http协议涉及到的内容。
时间: 2024-12-23 20:47:43

第一章:Http概述的相关文章

Laxcus大数据管理系统(2)- 第一章 基础概述 1.1 基于现状的一些思考

第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴技术和产业需求的推动下,对数据存储和计算要求也日益提高,并且对计算数据的准确性和精度也远高于互联网数据.而在这些现象的背后,当前的数据计算早已经突破MB量级,GB成为常态,TB变得流行,正在向PB迈进的时候,面对如此庞大的数据量,如果管理和使用它们,满足各种计算需求,发现和筛选其中有价值的信息,通常

第一章 HTML5 概述

这是一本关于 HTML5 编程的书.不过在学习之前,有必要先了解一下背景知识,什么是 HTML5?它经历了怎样的发展历程?HTML4 和 HTML5 有什么区别?本章中,我们会集中讨论大家关注的一些实际问题.为什么是 HTML5?为什么它能掀起风潮?是什么设计理念使得 HTML5 真正具有革命性的进步?HTML5 如何在大幅改动的同时保持高度兼容?无插件范式意味着什么?HTML5 包含什么,不包含什么?HTML5 新增加了哪些特性,为什么能揭开整个 Web 开发新时代的序幕?下面我们一起来了解一

学习笔记:第一章——计算机网络概述

学习笔记:第一章--计算机网络概述 1.0 计算机网络的定义:一些互相连接的,自治的计算机的集合称为计算机网路. 1.1 计算机网络在信息时代中的作用:连通和共享. 1.2 因特网概述:       网络的概念:网络(network)是由若干个结点(node)和连接这些结点的链路(link)组成. 网络中的结点可以是计算机,集线器,交换机和路由器: 网络和网络是通过路由器连接: 因特网是世界上最大的网络. 1.3 因特网的组成: 从因特网的工作方式上将其分为以下两大快: (1)边缘部分:由所有的

[OpenGL红宝书]第一章 OpenGL概述

第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向OpenGL传输数据 42 将传输数据到OpenGL 43 顶点着色 44 细分着色 45 几何着色 46 图元装配 47 剪切 48 光栅化 49 片元着色 410 逐片元的操作 5 第一个程序深入分析 51 进入main函数 52 OpenGL的初始化过程 初始化顶点数组对象 分配顶点缓存对象 将数

编译技术图示(第一章 编译概述)

编译技术图示(第一章 编译概述) 源程序——>机器代码 分析(前端):分成小部分,找出小部分属性,包括:词法分析.语法分析.语义分析.中间代码生成 合成(后端),包括:中间代码优化.目标代码生成.目标代码优化 1.词法分析:识别.删除单词符号.词法检查 输入:源代码,输出:二元式<单词类别,单词属性> 2.语法分析 输出:抽象语法树(AST),从下向上看 3.语义分析 有限,大部分都是类型(运算)检查 4.中间代码生成 eg:x=a+b —> t1=a+b x=t1 为什么分为两个

第一章 计算机网络概述

计算机网络原理精讲视频教程 第1章 计算机网络概述 局域网 覆盖范围小 自己花钱购买设备 带宽固定 自己维护 100米 带宽 10M 100M 1000M 广域网 距离远 花钱租带宽 Internet ISP 自己的机房 对网民提供访问Internet连接 理解OSI参考模型分层       第一层 应用层  (所有能产生网络流量的程序)       第二层 表示层  (数据在传送前是否进行 加密 .压缩 或 ACS码(文档类型) /二进制(图片) ,编码格式(显示乱码问题))       第三

第一章 Pyhthon概述

第一章 Python概述 Python语言是一种解释型.面向对象的计算机程序设计语言.Pyhon语言广泛应用与计算机程序设计教学语言.系统管理编程脚本语言.科学计算等,特别适用于快速的应用程序开发. 1.1 Python语言概述 1.1.1 Python语言简介 Python语言是一种解释型.面向对象的编程语言. 1989年底,吉多·范罗苏姆发明,广泛应用于处理系统管理任务和科学计算. Python是一个开源语言,拥有大量的库,可以高效地开发各种应用程序. 1.1.2 Python语言的特点 简

C#本质论读书笔记:第一章 C#概述|第二章 数据类型

第一章 1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置. 第二章 2.1 预定义类型或基本类型: C#语言的基本类型包括8种整数类型,2种用于科学计算的二级制浮点类型,1种用于金融计算的十进制浮点类型,1种布尔类型以及一种字符类型. 2.1.1 整数类型: 要注意int32的范围,如果是要保存10位以上的数字编号的时候,要么使用string,要么使用int64,因为int32只能保存到10

(连载)边喝咖啡边学Unity——第一章 Unity概述

作为本书的第一句正文,在这个醒目的位置再次想告诉大家,我的想法是大家把这本书当做一本闲书来读,同时也希望启发读者,因此目录结构只保留章节,不会再细分.重要的概念会特殊地提出来. 本章其实应该是枯燥无味的,对于Unity已经有所了解的读者可以自行跳过.鉴于本书的完整性不得不废话一章.         Unity是什么? 首先读者需要清楚地知道,Unity是一种工具或者说软件,至目前成书之时已退出5.0版本.也可以说Unity是一款优秀的3D游戏引擎,其对于底层图形接口的封装为开发者省了不少事,极大