http协议:
1.http:是网络传输协议;全称为:超文本传输协议;
关系:客户端和服务器的关系;
协议:就是一种规范;
常见的http和https两种,https是http的升级版
http协议:主要分request和reponse两种;
request是请求 浏览器跟服务器请求,就是告诉服务器,浏览器的情况;
请求主要分四部分;
第一部分:请求行
第二部分:请求头
第三部分:空行
第四部分:请求体;
怎么看请求和响应的状态;
f12(或者鼠标右键:点击检查)--》Network--》点击文件--》右边有个header;
header 分为了三个部分;
第一部分:General 通用的
第二部分:Response Headers 响应头;
第三部分:Request Headers 请求头;
请求头部分:
view parsed 显示原来的信息;
第一行:请求行:GET /seven/4.24/02.php HTTP/1.1;
请求行的格式:请求方式 /资源路径/HTTP/版本号
请求行以下都是请求头;
Host ip地址或域名
connection 连接状态
keep-alive 保持连接
close 关闭连接
upgrade-Insecure-Requests:1 告诉服务器这个浏览器支持https协议;
案例;
http://www.baidu.com 这种写法是错的 但是浏览器会自动升级到 https://www.baidu.com
user-agent:告诉服务器是谁发送的,浏览器的版本号;
Accept 告诉浏览器,浏览器能接受的内容类型;
accept-encoding:告诉服务器,浏览器支持的编码类型 ,主要是压缩格式 zip
accept-language:告诉服务器,浏览器支持的语言类型;
空一行 (不要忽略的细节)
请求体:只有在post请求下,才有请求体;
请求体里就是post 提交的数据;
get和post
1.提交的内容大小不一样
2.提交的方法不一样 get在url上post在http上
3.post可以加密 而http不行;
响应:
响应:服务器告诉浏览器 服务器的情况;
响应:response -》view parsed
第一行:相应行格式,http/版本号 状态码 状态说明;
HTTP/1.1 200 ok
响应头:
data 时间 必须是GMT时间格式;
gmdata() php返回GMT时间格式;
server 服务器的版本;
x-powered-by php版本;
content-length 响应内容的长度;
cache-control 缓存;
max-age= 告诉服务器我的缓存不能超过多少多少秒
disable able 不允许出现缓存
content-type 服务器告诉浏览器的内容类型;
keep-alive timeout=5,max=100 连接保持5秒,5秒内最大请求次数不能超过100次 ,然后断开与这个服务器的连接 5秒后断开/5秒内请求次数超过100次,也断开;
有请求行应有响应行
相应中我们使用 header() 去改变响应的性质
改变文件类型
改变重新定向;
header("location:url");
延迟跳转:
header("refresh");
下载对话框
header("content-disposition");
设定文件大小
header("content-length") 文件300字节 但是我可以只要200字节;
状态码:
2xx 成功
3xx 重定向
4xx 客户端
5xx 服务端
终端写http和服务器的交互;
配置telnet指令
即可配置完毕
操作telnet指令;
window+r -->cmd -->ipconfig-->找到ip地址-->telent ip地址 8088(端口)
以post方式