加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

HTTP基本知识、跨域和调试技巧

发布时间:2019-04-17 22:59:37 所属栏目:建站 来源:SmartCoder
导读:HTTP基本 着实许多口试问HTTP的3次握手,4次挥手,我认为代价不大,可以辅佐你领略HTTP的道理,死背硬记的对付你开拓没有浸染,而是去领略它就行。 前端只体谅URL、headers和data,接下来也环绕着它们睁开。 相识HTTP哀求可以看看:https://developer.mozi
副问题[/!--empirenews.page--]

 HTTP根基常识、跨域和调试能力

HTTP基本

着实许多口试问HTTP的3次握手,4次挥手,我认为代价不大,可以辅佐你领略HTTP的道理,死背硬记的对付你开拓没有浸染,而是去领略它就行。

前端只体谅URL、headers和data,接下来也环绕着它们睁开。

相识HTTP哀求可以看看:https://developer.mozilla.org...

1.相识URL

URL较量简朴,就简朴先容一下,将URL分为首要的3部门:

 1.  router,路由。路由地点可不能错,这就跟收件地点一样,填错收货的就不是既定的那小我私人了。

 2.   search,查询字符串,就是?后头的字符串,以键值对的情势通过“&”毗连,譬喻:“?key1=value1&key2=value2”。查询字符串就是发送到靠山的数据,跟平凡的post哀求对比,get哀求以明文的情势存储在会见汗青,赏识器和路由器都很轻易查获得,轻易泄漏,以是不提议用get哀求;其次一样平常赏识器都有限定URL的长度,以是不得当发送大数据量的数据。

 3.   hash,哈希值可能称为锚,是#后头的字符串,一样平常作为单页应用的路由地点,可能文档的锚。

2.前端常用的headers

2.1.Content-Type(重要)

汇报客户端,用什么情势前端的数据发送到靠山:application/x-www-form-urlencoded、multipart/form-data、text/plain等。

2.2 application/x-www-form-urlencoded

最常见的方法以键值对的字符串传输(相同URL的search),但不能传输文件,险些全部的ajax框架都是默认以此种方法发送。

发送到靠山的数据见下图:

2.3 multipart/form-data

这种方法会以键值对的情势通过脱离符链接,以字符串给靠山,可以传输文件,也可以传输平凡数据。

常用场景:

  1. // 源生的form提交可配置enctype="multipart/form-data",一样平常表单中有文件会自动设为该值  
  2. <form action="post" enctype="multipart/form-data"></form>  
  3. // ajax哀求,通过formdata工具来告竣此目标  
  4. const formdata = new new FormData();  
  5. formdata.append("key","value")  
  6. $.ajax({  
  7. ...  
  8. data: formdata,  
  9. processData: false,    // 打消对数据的预处理赏罚,由于formdata不必要预处理赏罚  
  10. headers: {  
  11.    "Content-Type": undefined    // 客户端会自动给它配置正确的值,不要设为multipart/form-data,这样设的效果会导致脱离符不正确  
  12. },  
  13. ...  
  14. }) 

假如在抓包确认划线的同等的话就是正确发送已往了。

2.4text/plain

这个很少会用到了,平凡文本,可所以恣意数据,除了文件。

2.5binary

二进制流,仅限一个文件。

3 Data-Type

汇报靠山你但愿返回什么范例的数据,如xml,html,script,json,jsonp,text等,可能你跟靠山约定的也可。可是现实返回的并非跟预期同等,照旧由靠山抉择的。

4 自界说header

假如跟靠山有约定header,如token等,也可传到靠山。

  1. headers["token"] = "MD5KEY"; 

CORS跨域

跨域题目的基础题目就是同源计策,旨在防备网站被进攻,这里不做赘述。

CORS是靠山的事变,但前端工程师照旧要相识CORS,这样才有靠山抬杠的成本。以下是靠山response设置CORS的headers,假如靠山不懂,请让他相知趣识CORS。

Access-Control-Allow-Origin

简朴说,应承跨域会见的host,必需配置,不然不应承跨域。

  1. // 如需应承全部资源都可以会见您的资源,您可以云云配置:  
  2. Access-Control-Allow-Origin: *  
  3. // 如需应承https://developer.mozilla.org会见您的资源,您可以配置:  
  4. Access-Control-Allow-Origin: https://developer.mozilla.org 

Access-Control-Allow-Credentials

假如想跨域传输cookies,必要Access-Control-Allow-Credentials与XMLHttpRequest.withCredentials 或Fetch API中的Request() 结构器中的credentials 选项团结行使。Credentials必需在前后端都被设置(即the Access-Control-Allow-Credentials header 和 XHR 或Fetch request中都要设置)才气使带credentials的CORS哀求乐成。

Access-Control-Request-Method

应承跨域的哀求的要领。

  1. Access-Control-Allow-Methods: POST, GET, OPTIONS 

Access-Control-Allow-Headers

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读