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 ...
随机推荐
- 搭建MyBatis框架
一.开发环境 1.JDK 1.6.0_22 2.MyEclipse 10.7.1 3.Oracle_10g_10.2.0.4 注:各软件版本不是必须的,正常任意版本都行,文件较大就不附上下载地址了,推 ...
- Android 简单的代码混淆
Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译.因为android程序多数是java语言开发的,而java代码很容易被反编译,所以为了使android应用 ...
- 简述UITextField的属性和用法
0. enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle ...
- python基础之 re(正则表达式)模块学习
今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...
- 删除数组中等于某个key的所有元素
题目描述: 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度. 这道题目做暴力的想法就是,用一个指针从头到尾遍历,删除哪个元素就把后面的元素统一向前移动一个位置.但是这样的时间复杂度很 ...
- jquery实现div垂直居中
<html> <head> <meta charset="UTF-8"> <title></title> <scr ...
- jQuery无缝滚动向上
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- listview优化
http://www.2cto.com/kf/201108/99928.html 项目用到ListView,由于要用到ImageView,图片源不是在资源里面的,没法使用资源ID,因此无法直接使用Si ...
- 支持SMTP邮箱介绍
126邮箱:POP:POP.126.comSMTP:SMTP.126.comhttp://mail.126.com/help/client_04.htm 163邮箱:POP:pop.163.comSM ...
- docker 在esx上的网络配置