TCP/IP协议族 应用层 —— HTTP协议认识

HTML:
创建网页语言
Hyper Text Markup Language 超文本标记语言。
CS:
本质是一个选择器。 美化HTML,选择htnl中的的元素,应用一些样式。
JS:
JavaScript 运行在浏览器上的一种语言,代码放在服务端。
js 和其他后端语言有不少的差距。js 需要遵循浏览器的规则。
js 无类型的语言


1、HTTP协议

Hyper Text Transfer Protocol 超文本传输协议,HTTP
HTTP协议,应用层上使用非常广泛的一组协议。
无状态性、请求、响应、现版本1.1,默认端口8080/。

无状态性:每次请求相互独立,互不相干。
1.0/1.1版本HTTP,建立在TCP的基础上。—HTTP协议需要可靠性作为基础

2、HTTP请求&响应格式

TCP/IP协议族 应用层 —— HTTP协议认识

2.1 HTTP请求(POST)
TCP/IP协议族 应用层 —— HTTP协议认识

请求行: [方法] + [url] + [版本]
Header:请求的属性,冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束。
空行
Body: 空行后面的内容都是Body。Body允许为空字符串。如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度。

2.2 HTTP响应
TCP/IP协议族 应用层 —— HTTP协议认识

状态行: [版本号] + [状态码] + [状态码解释]
Header: 请求的属性,冒号分割的键值对;每组属性之间使用\n分隔。遇到空行表示Header部分结束。
空行
Body: 空行后面的内容都是Body。Body允许为空字符串。如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度; 如果服务器返回了一个html页面, 那么html页面内容就是在body中。

3、HTTP常见Header

Content-Type: 数据类型(text/html等)
Content-Length: Body的长度
Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
User-Agent: 声明用户的操作系统和浏览器版本信息;
referer: 当前页面是从哪个页面跳转过来的;
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

4、HTTP请求参数

两种方式:URL(GET)、RequestBody(POST)
参数以键值对形式出现(username=zxy)多个参数用&隔开(username=zxy&password=123)

URL传参 (GET请求)
URL(Unique Resource Location),互联网上唯一标识资源,俗称"网址"。
格式:
协议:// 用户名:密码@ 主机地址 :端口 /文件路径 ?查询字符 #标识符
TCP/IP协议族 应用层 —— HTTP协议认识

查询字符串传参数。 ?x=x&y=y

URI和URL区别:
Unique Resource Identifer抽象上的资源唯一标识 范围大
Unique Resource Location具体的实现的资源标识

5、HTTP请求次数

请求一个网页可能产生多次请求。
取决于HTML中有没有使用其他资源。

6、HTTP缓存

网页HTML最好不要缓存
图片等可以缓存

7、HTTP方法

TCP/IP协议族 应用层 —— HTTP协议认识
TCP/IP协议族 应用层 —— HTTP协议认识

get与post比较常用。

8、发送POST请求

浏览器默认使用get请求
HTMLfrom中可以指定get还是post请求方法。

9、HTTP响应状态码

TCP/IP协议族 应用层 —— HTTP协议认识

常见状态码
200 成功
301 永久重定向
302 临时重定向
404 网页不存在
500 服务器挂了
503 稍后再来


POINT:HTTP请求过程

TCP/IP协议族 应用层 —— HTTP协议认识
TCP/IP协议族 应用层 —— HTTP协议认识