HTTP你该懂得事
来源:互联网 发布:linux stat命令 编辑:程序博客网 时间:2024/05/20 14:42
主要详细见https://www.cnblogs.com/ranyonsue/p/5984001.html
总结如下:
一、http超文本传输协议,
从www服务器传输超文本到本地服务器的协议
二、URL
是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL一般由三部组成:
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等
三、request请求
包括请求行,请求头,空行和请求数据组成
Get请求
例子,使用Charles抓取的request:
GET /562f25980001b1b106000338.jpg HTTP/1.1
Host img.mukewang.com
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept image/webp,image/,/*;q=0.8
Referer http://www.imooc.com/
Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zh;q=0.8
第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。
第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等
第三部分:空行,请求头部后面的空行是必须的
即使第四部分的请求数据为空,也必须有空行。
第四部分:请求数据也叫主体,可以添加任意的其他数据。
这个例子的请求数据为空。
POST请求
例子,使用Charles抓取的request:
POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
name=Professional%20Ajax&publisher=Wiley
第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。
四、response相应消息
包括响应头,消息报头,空行和相应正文
例子
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第二部分:消息报头,用来说明客户端要使用的一些附加信息
第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本信息。
空行后面的html部分为响应正文。
我们看看
GET和POST的区别
GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
- GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
- GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
- GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
- 使用GET提交数据还可能会造成Cross-site request forgery攻击
- HTTP你该懂得事
- internet协议入门——你该懂得知识
- internet协议入门——你该懂得知识
- 创业你要懂得那些事
- 该懂得的管理学原理
- 你懂得,我知道。
- Hive 你懂得~
- 你懂得-JIW
- 你懂得,网站
- python2016.2.3你懂得
- 网址,你懂得!
- 女孩,你知道成为人妻前需要懂得的事吗?
- 领导,你懂得沟通吗?
- 系统,你懂得有多少?
- php面向对象你懂得
- 坦克大战[源码] ---你懂得
- 程序员你应该懂得谦虚
- 支付宝赞助, 你懂得
- Map-HashMap-TreeMap-LinkedHashMA
- 基础练习 Huffuman树
- Numpy-数组的基本操作
- 常用ADB命令行
- ubuntu apt-get update特别慢更新不了
- HTTP你该懂得事
- a标签下载设置
- 音频采样率转换
- make menuconfig内核编译时,Error opening terminal: xterm 错误解决方法
- Javascript继承的实现方式
- 图解 Python 深拷贝和浅拷贝
- Ubuntu_Kerberos配置过程记录
- nginx从1.6.3升级至1.12.2版本
- JVM结构、GC工作机制详解