zwj611

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请求是包含数据,请求数据的格式主要有:

    表单格式:application/x-www-form-urlencoded:表单方式与GET方式类似,只是把数据放在头文件下面的请求正文区域。
    混合格式:multipart/form-data:混合模式一般是用来传输文件。后面会跟boundary=__xxxx__来进行每个参数的分割。表单中把type类型改为file就可以上传文件。<input type="file" name= "file" id= "file" />。
    JSON格式:application/json  :常见类型为json,xml,plain
    XML格式:text/xml     :常见类型为json,xml,plain
    文本:text/plain  :常见类型为json,xml,plain,这种类型的数据,需要服务端代码自行解析。
  (5)head,head返回内容基本于post,get基本一致,不返回数据部分。
 

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就不是同源,首先是协议不同,还有就是端口不一样。

 

 

  

posted on   yaphetss  阅读(46)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示