HTTP协议
HTTP协议全称:超文本传输协议;
何为协议,就是规范,发送者与接受者之间的规范,发送者要按何形式发送数据,接受者按何形式解析数据。
HTTP协议的特点:
- HTTP协议是基于请求与响应的;
- HTTP协议是无状态的;(无状态的意义即,每次请求响应过程完成,即断开,客户端与服务端无连接状态)
URL:
何为URL,全称为:统一资源定位符。指的是在客户端访问服务端时,永远只有唯一的一个URL与页面对应,简单说就是一个网址;
URL的组成是: 协议名
+ 域名:端口
+ 路由
HTTP协议的两个部分: 请求协议、响应协议
-
请求协议
请求方式 GET/POST
GET:无请求体,将发送的数据放在url后面发送,安全性差,且对数据长度存在限制。
常见的GET:浏览器的地址栏输入默认为GET方式,一般的超链接也为GET方式。
POST:存在请求体,将发送数据放在请求头中发送,不会显示到url中,安全性高,且无数据大小限制。
在存在中文时,浏览器会使用URL编码(将数据转换成%加16进制形式),为了防止数据因格式产生异议。请求协议分4部分内容组成:请求首行、请求头、空行、请求体
-
请求首行
指定请求方式、请求路径、协议与版本GET /index.html HTTP/1.1
-
请求头 **
请求头内容均为键值对形式:请求头名称:请求头内容支持的接受内容格式
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange; v=b3;q=0.9
支持的解压方式
Accept-Encoding: gzip, deflate, br
支持的语言
Accept-Language: zh-CN,zh;q=0.9
连接方式更改为保持,一般默认交互完成,保持3000ms
Connection: keep-alive
连接服务器ip端口等信息
Host:www.baidu.com
客户端支持的编码格式:
Accept-Charset:GB2312,UTF-8
上次访问地址记录,一般用于跳转页面记录,或插播广告后再次进入原页面
Referer:www.baidu.com
重点
Cookie:由于HTTP协议是无状态的的,故再次访问时,无法得知之前是否访问过,比如淘宝登陆等,故在第一次访问时,服务端会生成一组字符串作为cookie的内容值,再次访问时,会将cookie的内容值一同提交给服务器,让服务器知道你已经访问过什么。
。。。。。。 -
空行
空行作为间隔 -
请求体
只有post方式有请求体,get方式没有。真实发送的数据放在请求体中;
-
-
响应协议
常见响应码:
200:请求成功
404:请求页面不存在
500:服务器内部错误
302:重定向,客户端重新发送请求响应协议与请求协议一致,由4部分组成:响应首行、响应头、空行、响应体
-
响应首行
协议版本、状态码、状态码解释HTTP/1.1 200 OK
-
响应头
服务器版本信息
Server:XXXXX
响应体使用编码规则
Content-Type:text/html;charse=UTF-8
响应体字节长度
Content-Leng:724
响应给客户端的Cookie值
Set-Cookie:jlsjdlija
响应时间
Date:Wed,25 Sep 2020 04:03:23 GMT -
空行
空行作为间隔 -
响应体
实际回复的数据内容
-