码迷,mamicode.com
首页 > Web开发 > 详细

HTTP概述

时间:2019-06-23 01:14:15      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:col   传输   htm   百度   而不是   pos   lock   区别   shadow   

本人第一次写博客,由于知识薄弱,所以在博客中如果发现一些错误,请大家不吝指出,谢谢大家,另外,本人新建了一个QQ交流群879044979,希望各位大佬的加入。

内容

	这次大概说一下http协议

HTTP协议

HTTP在超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。HTTP请求有多种请求方式。GET方法、POST方法、HEAD方法、PUT方法、DELETE方法、CONNECT方法、OPTIONS方法、TRACE方法。其中常用的只有get请求和post请求。

HTTP共有两个版本,HTTP1.0和HTTP1.1,两个版本,就会有一定的区别
1.HTTP1.0在一次请求之后,就会断开连接,下次请求时,不会依赖于上一次的请求,每次都是不同的状态,不会记忆>信息和状态,这种比较安全。
2.HTTP1.1在一次请求之后,在一定时间内还会保留着连接的状态,当再次有请求时,会直接处理请求,而不是进行三>次握手。在一定时间内如果没有请求,就会断开连接

接下来就用控制台来模仿一下http请求,在模拟请求之前,如果是win10操作系统,就要进行一下配置,如果是win7,就不用做任何修改,说一下如何配置
首先找到控制面板,然后在控制面板中找到程序。
技术图片
在此界面中找到启动或关闭Windows功能。
技术图片
在此界面勾选Telent客户端,保存退出。
技术图片
接下来使用cmd模仿http协议,看一下http两个版本的区别。先以百度进行测试。
使用HTTP1.0进行测试,输入telnet www.baidu.com连接到主机。技术图片
会出现一个空白界面,在此界面按住ctrl+]进入到如图所示界面

在此界面按一次空格,又进入一个空白界面,在空白界面输入GET /index.html HTTP/1.0,输入完之后连按两次回车,看到如图所示界面技术图片
看到的就是请求响应回的内容,咱们先不管这个内容是啥,先把界面拉到最后。即可看到
遗失对主机的连接。如图技术图片
这就说明了HTTP1.0只进行一次连接,在处理完请求之后就会立即断开连接,即显示的遗失对主机的连接
接下来再看一下HTTP1.1请求
步骤和以上的步骤一样,修改的内容如图
技术图片
此次拉到最下,并没有看到遗失对主机的连接,说明连接还在,过了一会再看,断开字样就又显示了,这就验证了上面的所说,即HTTP1.0与HTTP1.1的区别。

HTTP解析

咱们还是以请求百度为例,先来看一下http的请求信息
技术图片
这就是请求百度的请求信息,分析一下
Host:www.baidu.com就相当于GET /index.html HTTP/1.0
接下来这些
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: BAIDUID=47451F4396E4C3E13BCC16F938291728:FG=1; BIDUPSID=47451F4396E4C3E13BCC16F938291728; PSTM=1547084029; BD_UPN=13314752; delPer=0; BD_HOME=0; H_PS_PSSID=26525_1444_21080_29135_29238_28519_29098_29131_29368_28833_29221_26350
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
这些是请求体,里面的内容后面再说。
我提出的这个例子有一部分内容还没有显示出来,因为是GET请求。
我用一张图说明请求的格式
技术图片
因为此次请求是get请求,所以没有请求内容,如果是post请求,则会有请求内容
上一张post请求图
技术图片
由于火狐的原因,这个空行并没有显示出来,但是是确实存在的,可以看见请求体。

技术图片
这就是响应的内容

接下来说一下限制的问题,虽然说get请求的请求内容是在url中,但是,部分浏览器对url大小是有限制的,例如,IE浏览器的限制大小为2083个字符,即2k+53,火狐的限制为65536个字符,谷歌的限制为8083个字符。

post请求的内容在请求内容中,理论上是没有限制的,但是,根据操作系统的不同,会有大小不同的限制。

解析一下url的内容
http://auth.huaweicloud.com/authui/login?service=https%3A%2F%2F
http表示使用的传输协议
auth.huaweicloud.com/authui表示请求的地址
authui/login请求的servlet名称
service=https%3A%2F%2F请求的数据内容,在?之后
大家可以看到%3A%2F%2F内容,这实际上是中文,只不过在url显示中,会将中文进行转码,还有一种规则,就是会将url中的空格转为‘’+‘’显示。

好了,就写到这了,文章中的不足请多多指出

原创作品,如需转载,请指明出处以及作者

 

HTTP概述

标签:col   传输   htm   百度   而不是   pos   lock   区别   shadow   

原文地址:https://www.cnblogs.com/Lighting-Sui/p/11071215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!