合肥建站公司seo,网站推广与seo的区别,设计师网页设计培训,wordpress电商小程序HTTP协议(超文本传输协议)#xff0c;是一个被广泛使用应用层协议#xff0c;自1991年正式发布HTTP协议以来#xff0c;HTTP协议就一直在更新#xff0c;目前已经更新到3.0版本#xff0c;但是目前主流的依旧是1.1版本#xff0c;但依旧是一个最主流使用的应…HTTP协议(超文本传输协议)是一个被广泛使用应用层协议自1991年正式发布HTTP协议以来HTTP协议就一直在更新目前已经更新到3.0版本但是目前主流的依旧是1.1版本但依旧是一个最主流使用的应用层协议。
HTTP协议一般是基于TCP协议实现的当时知道HTTP3.0开始支持UDP协议实现传输使用TCP相比较UDP虽然安全但是速度却相差很多从3.0版本开始支持UDP协议为了的实现更快的传输并且该版本在应用层实现了可靠传输的机制保证了高速传输的同时也保证可靠传输。
HTTP协议格式 HTTP是⼀个⽂本格式的协议.可以通过Chrome开发者⼯具中的network功能或者Fiddler抓包,分析HTTP请求/响应 的细节。 Fiddle抓包基础http://t.csdnimg.cn/lVBBS 1. HTTP请求报文
HTTP请求报文一般包含首行请求头header空行正文body可能有可能没有 1.2.1 首行
首行一般包含3部分请求方法url服务器资源唯一定位符HTTP协议版本。
发展到现在HTTP协议的请求方法有很多种包括GETPOSTPUTPATCHDELETEHEADOPTIONS意思是表示让服务器知道这个请求是要干嘛的其中最常见最重要的就是GETPOST方法。可以说GET占八斗POST占一斗其余占一斗。
1.2.1.1 url
了解HTTP协议应该从了解url开始可以认为你所看到的每一个网页都有一个唯一的url也就是我们通常说所的网址以下是由RFC文档对url进行了约定https://datatracker.ietf.org/doc/html/rfc1738虽然看起来它是由很多部分组成的但是实际组成很简单。
1.协议名称https为什么是https而不是http后面会解释可以先理解它是http协议的安全版本2.身份认证信息目前已经舍弃这里也没有体现只要是因为现在网站进行身份认证都是简单通过url提交身份信息3.服务器域名ip地址www.baidu.com,这里有时候会是一个ip地址也有可能是一个域名但是实际指的都是同一个服务器4.服务器端口号可以省略指的是要访问服务器的哪个端口号现在可以省略是因为规定好了如果是http协议就固定访问80端口号是http是协议就访问443端口号除非有些特定的资源就可能会需要指定端口号不然一般都是上述两个端口号5.带层次的文件路径描述的是服务器管理的资源6.查询字符串通常是一些键值对键和值之间用”“键值对之间用”“分隔开7.片段标识符片段标识符可以表示网页中的一部分一个网页可能有很多部分组成有时候你点一个标题或者什么会自动跳到这个网页的某个部分。 关于URL encode 不知道你有没有发现有时候你搜索东西在网址哪里会显示你输入的关键词有时候却没有比如我现在搜索一个Cquery string的value是c%2B%2B是因为有时候value有时候也会有符号如果不进行转码可能就会出现类似”粘包问题“所以需要对某些字符进行转码。但是使用什么转码才能确保不会出现问题呢如果是汉字使用utf8和gbk转码后的字节可能会与特殊的字节重复所以用的另一套转码规则--”urlencode“在这套规则中如果遇到需要转码的字符就会按照这套规则将字符转码用十六进制表示并在前面加上一个”%“以表示这是一个转码后的也是为了能够分开。但是又时候你看到的并不是转码后的而是实际你输入的搜索内容这是因为浏览器为了让客户看到实际在传输的内容还是转码后的内容。 1.2.1.2 请求方法
HTTP协议首行最先出现的就是请求方法可以让服务器知道这个请求时要干什么的到目前为止请求方法包括GETPOSTPUTPATCHDELETEHEADOPTIONS有一种说法GET占八斗POST占一斗其余占一斗说的就是GET和POST的重要性我们最经常使用的也是这两种方法。
GET和POST的区别 1.本质上是没有区别的2.从语义和一般传递数据的方式来看是有一定区别的GET语义上是从服务器上获取资源所以通常GET请求不会带有正文,因为正文一般是要发送个服务器的数据的一般GET请求向服务器提交数据是通过query string键值对去提交数据像我们搜索搜索内容就是query string这个键值对的value提交给服务器而POST请求一般是要通过正文提交的而不是通过query string传输数据。但是随着现在网络的使用get和post的界限已经很模糊了get请求可以搭配body使用post也可以搭配query string 使用。3.服务器对GET请求时幂等的对POST请求是不幂等的。幂等就是多次请求返回的结果是一样的GET请求是可以缓存的保存收藏夹POST请求是不可以缓存的跟幂等也有一定的关系),POST请求一般是获取到了服务器的302临时重定位再向服务器发给GET请求获取到网络主页的内容。 几个有问题的说法 1.POST比GET安全 该说法的论证就是使用GET请求url会显示提交的个人信息被人看到造成信息泄露而POST是通过正文body提交信息看不到所以比GET安全。 这个说法是很有问题实际上我们通过抓包工具也可以很简单的获取到信息传输数据安不安全不取决显不显示而是取决是否对信息加密。 2.GET请求提交的数据量有限比较短POST请求提交的数据量比较多不限制。 该说法它的论据是GET是通过url的Query String提交数据的而POST是通过正文提交数据的主要是因为但是IE浏览器确实是对URL长度做出了限制但是这是很早的情况了现在的HTTP协议对url的长度是不做限制的所以该说法也是不正确的。 3.GET只能传输文本数据POST既可以传文本又可以传二进制数据。 实际上url有encode转码机制只要对二进制进行encode转码也可以传输二进制数据。 1.2.1.3 HTTP协议版本
在首行的最后通常会有一个 HTTP/1.1,表明使用的HTTP协议的版本。
1.2.2 请求头header
在HTTP的协议中在首行和空行之间的就是请求头header通常都是一些标准规定的键值对内容键和值之间用”“键值对之间用”“由于有很多的键值对这里只介绍重要的键值对。
Host
客户端要访问的服务器的IP地址和端口号有时候没有端口号只有一个域名或者IP地址这一部分一般是跟URL中的服务器域名和端口号是一样的。
Content-Type
表示请求中的正文中的数据格式为的是针对不同的数据类型服务器能够选择不同的处理方式针对音频有音频的处理方式图片有图片的数据方式。
Content-length
表示正文的长度使得服务器能够知道完整的正文长度防止”粘包问题“。
User-Agent (简称UA)
表示浏览器/操作系统的属性
Referer
表示这个页面是从哪个页面跳转来的如果是直接输入url或者点击收藏夹里的访问是没有Referer这个键值对的。
CookieHeader最重要的一个键值对
cookie包含了很多的键值对键和值之间用键值对之间用其中的键值对都是开发网站的程序员自定义的除了他自己能看懂其他人都看不懂
Cookie本质上是永久化保存在硬盘上的但是网页是在浏览器上运行的如果直接让网页操作硬盘是非常危险的意为着有可能有一个网站都有可能直接获取到硬盘的数据所以浏览器对于硬盘的操作做了严格特殊的封装硬盘中提供了一个/一组文件来给网页保存内容而且对于保存格式了做了严格的规范只能保存键值对键和值都必须是文本数据浏览器就给网页提供了能够持久化保存数据的一个经典机制---cookie不同的网站都有不同的Cookie。
Cookie的来源在一开始访问服务器的请求中是没有cookie第一次出现Cookie是出现在响应中的header中set-cookie中浏览器收到响应之后就会把set-cookie中的内容保存为cookie中
Cookie的去处等到再次访问服务器的时候请求的header中就会带上cookie返回发给服务器让服务器知道你已经访问过服务器了带上了服务器给客户端的一些信息。
Cookie的作用客户端保存了服务器给的特定的键值对再访问服务器的时候就会带上cookie一个服务器要服务很多的客户端每一个客户端都保存一个这样的cookie键值对中通常会带上很多重要的数据作为键值对比如你的网站的配置像夜间模式/白天模式让服务器记住你的习惯等到你再次访问服务器的时候访问的页面可能就是跟你的使用习惯一样方便服务器给你提供符文。cookie还有一个特别重要的键值对key这是很多网站都会保存的关于客户端的cookie中的个人信息比如你登录一个网站填上了个人信息cookie就会保存你的登录信息就像一张通信证一样只要有这个cookie此后你访问网站的每一个网页都不需要再次登录服务器通过你携带的cookie信息就知道你已经是登陆过的不要再登录有权限访问这个网页。像以上服务器保存的id以及相关的各种详细信息就称之会话session是一个类/对象
1.2.3 空行
空行是请求头header的结束标志
1.2.4 正文
正文一般是用来提交信息的比如你提交一个一个POST请求来上传一个头像正文的数据就是你头像的二进制数据但是你通过抓包工具抓到的body保存的是不是图片的二进制格式而是将二进制数据进行base64转码
2 HTTP响应报文
HTTP响应报文一般包含状态码响应报头header空行正文
1.状态码
从状态码可以知道你这次请求的结果通常由一个数字代码和一个/一组单词组成。状态码有很多种这里只是分享常用的常见的状态码详细可以自行百度。
200 OK
这表示这个访问请求成功这是一个最常见的状态码
404 Not Found
表示这次请求要访问的资源不存在或者在客户端不存在
403 Forbidden
表示你这次请求要访问的资源你没有权限访问。
405 Method Not Allowed
表示这次请求的方法服务器不支持。有的服务器不支持POST请求有的不支持GET请求之类的就会出现405
500 Server Error
表示服务器内部错误可能是代码出现了bug。由于现在的服务器都是”高可用“的很少会出现内部错误一个服务器虽然不可能一直都不出错但是如果有多台服务器即使一部服务器出错也有另一台服务器可以用。所以现实中访问很少会出现服务器错误。如果我们自己开发服务器就可能会经常看到500错误。
504 Gateway Timeout
表示网关服务器访问超时我们要访问的服务器可能不只是有一台组成的可能有多台服务器但是一定有一个入口服务器就称之为”网关服务器“。通常服务器比较繁忙的时候会出现这样一个问题。
302 Move Temporarily临时重定向
我们有时候会发现我要访问网站的时候回跳到另外一个网站比如一个网站更信了域名或者IP地址我们在访问就地址的时候就会自动跳转到新地址网页登陆跳转的状态码常常就是302。吗每一个访问都要访问服务器等待服务器的响应获取到响应中Location才能真正的实现网页的跳转。
301 Moved Permanently永久重定向
使用302临时重定向每一个访问都需要等待服务器的响应才能实现跳转这个重定向是临时。而301永久重定向只要访问一次之后旧地址和新地址就会形成一种映射保存,此后再次访问都不要通过服务器直接本地映射跳转。
状态码小结
类别原因短语1xxInformational(信息状态码)接受的请求正在处理2xxSuccess成功状态码请求处理正常完成3xxRedirection重定向状态码需要进行附加操作完成请求4xxClient Error客户端错误状态码服务器无法处理该请求5xxServer Error服务器错误状态码服务器处理请求错误
2.响应报头
响应报头的基本格式和请求报头的格式基本⼀致 类似于 Content-Type , Content-Length 等属性的含义也和请求中的含义⼀致.
文章转载自: http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn http://www.morning.lhwlp.cn.gov.cn.lhwlp.cn http://www.morning.mxmzl.cn.gov.cn.mxmzl.cn http://www.morning.dnycx.cn.gov.cn.dnycx.cn http://www.morning.ydflc.cn.gov.cn.ydflc.cn http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn http://www.morning.lzjxn.cn.gov.cn.lzjxn.cn http://www.morning.mflhr.cn.gov.cn.mflhr.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn http://www.morning.fjptn.cn.gov.cn.fjptn.cn http://www.morning.kflzy.cn.gov.cn.kflzy.cn http://www.morning.pnntx.cn.gov.cn.pnntx.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.ytfr.cn.gov.cn.ytfr.cn http://www.morning.ljqd.cn.gov.cn.ljqd.cn http://www.morning.qznkn.cn.gov.cn.qznkn.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn http://www.morning.zrkp.cn.gov.cn.zrkp.cn http://www.morning.rjnx.cn.gov.cn.rjnx.cn http://www.morning.rnlx.cn.gov.cn.rnlx.cn http://www.morning.lszjq.cn.gov.cn.lszjq.cn http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn http://www.morning.sjsfw.cn.gov.cn.sjsfw.cn http://www.morning.knzdt.cn.gov.cn.knzdt.cn http://www.morning.sltfk.cn.gov.cn.sltfk.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn http://www.morning.kfhm.cn.gov.cn.kfhm.cn http://www.morning.lgphx.cn.gov.cn.lgphx.cn http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn http://www.morning.fkmrj.cn.gov.cn.fkmrj.cn http://www.morning.bzfld.cn.gov.cn.bzfld.cn http://www.morning.zbqsg.cn.gov.cn.zbqsg.cn http://www.morning.kntbk.cn.gov.cn.kntbk.cn http://www.morning.rwlns.cn.gov.cn.rwlns.cn http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.kwxr.cn.gov.cn.kwxr.cn http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn http://www.morning.npfkw.cn.gov.cn.npfkw.cn http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn http://www.morning.ejknty.cn.gov.cn.ejknty.cn http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.fpbj.cn.gov.cn.fpbj.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn http://www.morning.wdlg.cn.gov.cn.wdlg.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn http://www.morning.qcygd.cn.gov.cn.qcygd.cn http://www.morning.bmyrl.cn.gov.cn.bmyrl.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.fynkt.cn.gov.cn.fynkt.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.wknbc.cn.gov.cn.wknbc.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.kdxzy.cn.gov.cn.kdxzy.cn http://www.morning.bpmtx.cn.gov.cn.bpmtx.cn http://www.morning.yodajy.cn.gov.cn.yodajy.cn http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn http://www.morning.mphfn.cn.gov.cn.mphfn.cn