HTTP填坑
HTTP知识填坑
.note-content  {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;}
.note-content h2 {line-height: 1.6; color: #0AA89E;}
.note-content  {background: #FFFFFF;}
.note-content h1 {color: #7AB3A7;}
.note-content h3 {color: #147A67;}
HTTP知识填坑
什么是HTTP及相关知识
HTTP就是一种协议,计算机之间要遵守这种协议的规则,彼此之间相互通信,但是现在也不局限于计算机了,手机、电视、冰箱等智能终端都可以。 
那么这个协议的使用流程是什么样的?
- http客户端发起请求,创建端口
 - http服务器在端口监听客户端请求
 - 一旦收到请求,http服务器向客户端返回状态和内容
 
具体步骤:
- 浏览器搜索自身的DNS缓存
 - 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
 
○ 如何查看chrome内的dns缓存? 
在chrome浏览器地址栏中输入
1.chrome://net-internals/#dns
那么就可以查看你曾经浏览过网站的目录。
- 读取本地的HOST文件
 - 浏览器发起一个DNS的一个系统调用(具体请看之前的 linux网络管理——DNS作用)
 - 浏览器获得域名对应的IP地址后,发起HTTP “三次握手”
 - TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采HTTP 1.0的一个协议
 - 服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是腾讯的页面就会把完整的HTML页面代码返回给浏览器
 - 浏览器拿到了腾讯的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求都需要经过上面的主要的七个步骤
 - 浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户
 
其实我们可以把一整个HTTP流程拆分开,拆分开为请求和响应。无论是请求和响应,都会发送http头和正文信息 
HTTP头发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码 
正文就是用户提交的表单数据
 
通过审查元素能找到耗时,通过分析timing能分析网站加载慢的原因 
 
查看请求状态码跟响应的方法
请求方法:GET(读取数据)、POST(提交数据)、PUT(上传资源)、DELETE(删除)、HEAD、TRACE、OPTIONS… 
状态码(返回浏览器,告诉浏览器请求是否成功失败),一般由三位数组成:1xx(表示请求已经接收,进行处理)、2xx(表示请求已经接收,并且成功处理掉了)、3xx(重定向,表示要完成一个请求还需要进一步的操作)、4xx(出现错误,请求有语法错误或者无法实现)、5xx(服务器端无法实现请求)
HTTP填坑的更多相关文章
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
		
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
 - css 填坑常用代码分享
		
以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 因为提交比较麻烦,后来转置github:https://github.com/jsfront/src/blob/mast ...
 - 填坑系列:通过ESXi来配置IPMI
		
近日西安的天气很不错,可是看到从其他地方迁移来的主机在新环境下无法远程调试怪郁闷的,这就需要填坑,要不就会给后来者挖更大的坑. 今天遇到的坑是在IPMI的网络设置里面启用了VLAN标签之后,在新环境下 ...
 - Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)
		
这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angular ...
 - 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
		
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...
 - 【填坑向】spoj COT/bzoj2588 Count on a tree
		
这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...
 - windows下jenkins常见问题填坑
		
没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4 ...
 - bootstrap-table填坑之旅<一>认识bootstrap-table
		
应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...
 - 填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT
		
填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT 警告:发生了重入! 解释:在主循环里调用了一个函数,而在中断服务中又一次调用了同样的函数.当主循环运行到该函数中 ...
 - React Native填坑之旅--Stateless组件
		
Stateless component也叫无状态组件.有三种方法可以创建无状态组件. 坑 一般一个组件是怎么定义的: 很久以前的方法: const Heading = createClass({ re ...
 
随机推荐
- idea git 注意事项
			
1.使用idea进行不同分支切换的时候,一定要先将代码当前分支的代码提交(可以不push),否则当前分支未提交的代码被认为即将切换的代码,在切换过程中会产生冲突. 2.使用idea进行merge的时候 ...
 - 小心ThreadLocal的陷阱
			
ThreadLocal用在多线程时保存线程级的局部变量,当我们需要在线程内共享数据时,ThreadLocal屡试不爽,但是ThreadLocal也会有一个问题,当你使用线程池时,线程可能会被重用,所以 ...
 - easyui combo自动高度(下拉框空白问题)
			
设置.combo-panel {max-height:200px;} 在用到easyui-combobox时,设置panelHeight:'auto'
 - iOS开发之网络请求(基于AFNetworking的再封装)
			
最近一直很忙也没有什么时间写博客了.放假了休息一下,就写一篇博客来总结一下最近做项目中出现过的问题吧!!! 首先,在项目中我的起到了什么作用,无非就是把美工(UI设计师)给我们的图显示出来,然后再和服 ...
 - sql 添加字段备注和查看已添加表的备注
			
虽然avl树和红黑树在数据搜索和排序方面都是有效的数据结构,但是都显得特别麻烦,跳跃表就显得特别简单,虽然简单 不影响他性能,在平均情况下,其插入.删除.查找数据时间复杂度都是O(log(N)),其最 ...
 - 关于C语言指针几个容易混淆的概念
			
前言: 大多数学习过C/C++或者正在学习的同学在对指针概念把握时,总是感觉不太明了,小弟我也不例外啊,于是翻开资料复习整理一下,并把自己的学习心得拿出来供大家分享,讨论. 基本概念掠过,主要来探讨一 ...
 - Unix下C程序内存泄露检测工具:valgrind的安装使用
			
Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...
 - Lazy evaluation
			
是一段源码,关于Lazy evaluation的,看了很久才懂,记录一下 一,lazy方法返回的比较复杂,一层一层将其剥开. wraps(func)跳转到curry(update_wrapper, f ...
 - PDO的事物处理机制
			
Mysql的事务处理: 1.MySQL目前只有InnoDB 和BDB两个数据表类型才支持事务. 2.在默认条件下,MySQL是以自动提交(autocommit)模式运行的,这就意味着所执行的每一个语句 ...
 - jquery与ajax的应用
			
1.编写第一个Ajax的例子,先来看一下传统的JavaScript实现的ajax例子. 首先在前台页面中书写HTML代码. <input type="button" valu ...