2、http协议
(仅供自己学习使用)
一、http协议的基础知识(请求方法、状态码、响应头信息、协议的URL)
1、请求方法:
(1) http1.0请求包含 head、get、post
(2)http1.1请求包含head、get、post、options、put、delete、trace、connect
(3)get请求的标准格式是:<路径>【?<arg1>=<value1>[&<arg2>=<value2>....]】,例如http://ceshi.com/get.php?arg1=value1;get请求可以只有请求的路径:http://www.baidu.com;也可以不包含Content-Length;也可以带需要传递的数据,在访问路径后带?参数=值的方式发送;服务器端的响应也是使用相应的函数来进行响应。get可以理解为查询select,不会对数据进行任何的修改,新增,删除等操作。get请求会把请求的参数附加在URL后面,这样是不安全的。
(4)post,post请求是包含数据,请求数据的格式主要有:
2、请求的组成:
由请求行、消息报头、请求正文组成
(1)请求行以方法符号开头,空格隔开,后面跟着请求的URL和协议版本,例如:Method Requst-URL http-Version(CR)(LF)
(2)消息包头允许客户端向服务器传递请求的附加信息以及客户端自身的信息。常用的报头有 accept,acceptcharset,Accept-Encoding,Accept-Langvage,Authorization,Host(发送请求是,host是必须的),User-agent
3、响应码:
这里可以自行查网络上的信息,基本的就是2xx是响应成功;3xx是找到资源,重定向;4xx是未找到资源;5xx是服务器没响应。
4、常用标准响应字段
access:服务器支持那些请求方法,get,post
connection:当client和server通信时对于长链接如何进行处理,有keep-alive和close
content-Encoding:文档的编码方法
content-Length:表示内容长度
content-Type:表示后面的文档属于什么MIMe类型
Date:当前的GMT。
Expries:应该在什么时候认为文档已经过期,从而不在缓存它
Last-Modified:文档的最后改动时间。
Location:表示客户莹当到哪里去提取文档
Refresh:表示浏览器应该在多少时间之后刷新文档,以妙记
server:服务器的名字
set-Cookie:设置和页面关联的cookie
no-cache,浏览器和缓存服务器都不应该缓存页面信息;
Cache-control:no-cache,表示不进行缓存
Pragma:no-cache,导致不能缓存,session.cache_limiter 指定会话页面所使用的缓冲控制方法(none/nocache/private/private_no_expire/public)。默认为 nocache。
public,浏览器和缓存服务器都可以缓存页面信息;
no-store,请求和响应的信息都不应该被存储在对方的磁盘系统中;
must-revalidate,对于客户机的每次请求,代理服务器必须想服务器验证缓存是否过时
目前Cache-Control请求字段被各个浏览器支持的较好,其优先级也比较高,当和别的字段(如Expires)一起用时,会覆盖其他字段。
5、什么是URL
URL是统一资源定位符,是互联网上标准资源的地址
URL包含:协议、用户名:密码、主机-子域名.域名.顶级域名、端口号、目录/文件名.文件后缀、参数=值、标志
URL格式:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
例如:http://v.weixiaov.wang:80/wx6/php/check.php?args=xxx
解析下:http是协议,v是子域名,weixiaov是域名,wang是.顶级域名,:80是端口,/wx6/php/check.php是目录文件名.文件名后缀,ars=xxx是参数=值
URL编码格式为16进制的,只有数字和大小写字母,以及一些特殊符号$,-,_,. +!* ' () 以及某些保留字,才能不经过编码直接用于URL。 相对URL,/目录/文件名.文件后缀?参数=值#标志
URL同源策略:必须是协议,主机(子域名.域名.顶级域名),端口都相同时才算是同源。浏览器设置里默认只有同源的内容才能相互操作。
比如http:www.bai.com:80,和https://www.baidu.com就不是同源,首先是协议不同,还有就是端口不一样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!