http
基础概念
网络协议概念
-
是为了实现计算机之间能够传输数据而达成的一种约定或规定。只要计算机遵守协议,那么无论计算机是哪个厂商开发的,以及不同操作系统的电脑都可以实现数据传输
-
实现网络数据传输的协议:TCP/IP 协议族
- TCP/IP:是指以tcp和ip协议为主的用于实现网络通信的一整套网络协议的集合。
tcp/ip 协议族及分层(了解)
- 主要分为4层:
- 应用层:把应用程序的数据按照指定的协议进行包装。比如发送的是邮件,采用邮件的协议进行包装-SMTP,如果发送的是文件,会用FTP(File Transfer protocol).如果是网页,就用HTTp进行包装。
- 传输层
- 网络层
- 数据链路层(网络接口层)
HTTP数据交互流程
### 浏览器获取网络资源的流程
- 浏览器要发送请求到服务器用于请求某个资源(可能是HTML页面、css文件、js文件、图片之类的),服务器接收到请求之后经过处理,将要返回的数据包装成一个响应,最后服务器会将响应传回给浏览器。浏览器用http解析响应并渲染对应的数据在页面上。
- 浏览器一个请求只能请求一个资源。即一次只能拿到一个文件,可能是HTML、或js、或css、图片等。也有可能只是一段文字,比如判断登录。
客户端:
- 在http这块,客户端就指的是浏览器。
服务器
- 处理请求并发送响应的电脑。
url &uri *
-
uri:uniform resource identifier:统一资源标识符
- 给网络上的每个资源都设定一个"身份证"。
-
url:uniform resource location: 统一资源定位符
- 给网络上的每个资源都给一个访问的路径。只要输入的是同一个地址,无论是在哪台电脑,哪个浏览器,得到的都是同一个资源。
- 可以理解url是uri的落地方案。
http&https对比 *
http :hyper-text transfer protocol (超文本传输协议)
-
是运行在应用层上的一个协议。规定了两台主机的网页数据,如何传输。
-
特点:
- 对于数据传输,http协议并没有做安全认证、不能识别接收数据的服务器身份,同时对于一些数据,是明文传输。
HTTPS: hyper-text transfer protocol over secure socket layer:建立在安全套接字上的超文本传输协议
- 安全版本的http协议。
- HTTPS比http多了一层ssl/tsl.专门负责数据的加密和解密及身份验证。
- 传输效率不如http,但增加了安全性,同时也增加了身份认证。
请求和响应
请求和响应概念
-
当浏览器发送请求时,会把请求相关的信息和要发送的数据包装成一个请求数据块发送给服务器,服务器接收请求并处理之后,也会把要返回的数据包装成响应数据块传回给浏览器,浏览器解析数据并展示在页面上。
-
手动发送请求的两种方式
- 通过网页地址(表单或url)
- JavaScript
请求
http协议请求包含三部分内容:
请求行
请求头
数据
-
一个普通的请求包含了三个部分:状态行、请求头、请求体
-
状态行:请求的方式、请求的地址、版本号
- 请求头:包含了对数据属性的描述以及请求本身的配置信息。
-
请求体:包含了要发送给服务器的用户数据。一般是post请求会有,get请求没有。
-
-
状态行:
-
请求头:
Accept:期望接收的数据类型content-Length:请求体的数据字符长度,无请求体为0connection:浏览器和服务器的连接方式:keep-alive: 长连接content-type:请求体的数据类型Cache-Control:是否启动缓存Accept-Encoding:支持的扩展数据类型。比如支持压缩host:发送请求的域名
-
请求体:
-
请求的方式:
-
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
-
-
GET:一般是指获取数据,不发送数据。- get是可以发送数据
- get发送的数据是明文传输,而且会直接将数据显示在地址中
- 有数据大小限制,一般不超过2kb
-
POST:提交数据。一般是需要提交用户数据时使用。比如登录、注册、添加数据- 请求包含请求体,要发送的数据就保存在请求体里
- 大小无限制,可以实现上传文件。
- post一般会发生两次请求。第一次是发送一个请求头,当服务器接收并响应时,才发送包含数据的第二个请求到服务器。
- 数据没有包含在地址里。
-
PUT:修改数据。
-
-
指定请求的方式:
<form >里有个method属性可以指定请求方式- JavaScript修改
- 默认情况下,通过地址栏发送的请求都是get请求
响应
-
包含了状态行、响应头、响应体
- 状态行:包含了服务器的地址,版本号,响应状态码
- 响应头:包含了该响应的配置信息
- 响应体:服务器要发送的数据
-
状态码:表示该请求处于什么阶段。
200:表示该请求已处理完毕,浏览器已接收完响应304:数据未修改400:浏览器端语法 错误401:浏览器没有经过授权403:请求被服务器拒绝404:服务器没有找到该资源500:服务器发生崩溃性错误503:服务器临时错误。
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):
| 分类 | 分类描述 |
|---|---|
| 1** | 信息,服务器收到请求,需要请求者继续执行操作 |
| 2** | 成功,操作被成功接收并处理 |
| 3** | 重定向,需要进一步的操作以完成请求 |
| 4** | 客户端错误,请求包含语法错误或无法完成请求 |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
媒体类型
常见的媒体格式类型如下:
- text/html : HTML格式
- text/plain :纯文本格式
- text/xml : XML格式
- image/gif :gif图片格式
- image/jpeg :jpg图片格式
- image/png:png图片格式
- application/json:JSON数据格式
MIME
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准
url
http://www.woniuxy.com:5500/public/index.html?id=1&b=2#dsadsa
http网络协议
www 主机名(默认值是www)
woniuxy.com域名
:5500端口(默认是80)
/public/index.html 路径
?id=1&b=2 参数
#dsadsa锚点名称