HTTP概念
HTTP
协议(即超文本传输协议HyperText Transfer Protocol),它是基于TCP/IP协议的应用层传输协议. 规定了客户端一次请求, 服务端一次应答后主动断开连接的连接方式
HTTP基本原则
1.基于请求应答模型, 就是有人敲门(请求) 然后你打开了门(应答)这种关系.
2.一次请求对应一次应答.
3.只能由客户端发出请求, 服务器接收请求并给出应答.
HTTP详细内容
HTTP请求 Request
典型的HTTP请求结构: 一个请求行 若干请求头 一个空行 实体内容
1.一个请求行
1)请求方式: HTTP协议中规定了7中请求方式 (GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE), 真正运用到实际只有GET和POST两种请求方式.
2)请求的资源 例如: /news3/1.html
3)HTTP协议的版本: http 1.0 ---> 严格一次请求一次应答就断开连接
http 1.1 ---> 允许保留连接一段时间,供应html连接的静态资源使用
POST就是请求方式 /news3/1.html就是请求的资源 HTTP/1.1就是协议的版本
2.若干请求头
Accept: text/html,image/* -- 通知服务器当前浏览器可以接收哪些格式的数据
Accept-Charset: ISO-8859-1 -- 浏览器可以接收的字符集编码
Accept-Encoding: gzip,compress -- 浏览器可以接收的压缩格式
Accept-Language: en-us, zh-cn -- 浏览器接收的语言环境和国际化相关的头
Host: www.baidu.com:80 -- 需要访问的虚拟主机的名称
If-Modified_since: Fri, 28 Jan 2022 09:09:56 GMT -- 缓存机制相关的头
Date: Fri, 28 Jan 2022 09:09:56 GMT -- 当前发送请求的时间
3.空行: 作用 --- 分割请求头和实体内容
4.请求实体: 实体内容中为需要传递给服务器的内容数据
POST请求会将表单参数存入请求实体中
GET请求会将表单中参数拼接在URL后面
HTTP响应 Respond
典型的HTTP响应结构: 一个状态行 若干响应头 一个空行 实体内容
1.一个状态行
1) 遵循的协议号
2) 状态码: 是3位的十进制数,通过不同的状态码表示服务器对请求的不同处理结果。响应状态码分为5类。
状态码 | |
100~199 | 表示接收的请求正在处理 |
200~299 | 表示成功接收请求并已完成整个处理过程,常用 200 |
300~399 | 需要进行附加操作已完成请求. 例如: 请求的资源已移动一个新地址 常用302 -- 表示请求重定向, 304 -- 表示通知浏览器使用缓存中的资源, 307 -- 表示通知浏览器使用缓存中的资源 |
400~499 | 客户端的请求有错误, 常用 404 |
500~599 | 服务端出现错误, 常用 500 |
3) 状态描述: OK, Not Found......
2.若干响应头
1) Location: http://www.baidu.com 配合302使用实现请求重定向
2) refresh 定时刷新
3) Set-Cookie
3.空行
4.应答实体