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就是一种协议,计算机之间要遵守这种协议的规则,彼此之间相互通信,但是现在也不局限于计算机了,手机、电视、冰箱等智能终端都可以。

那么这个协议的使用流程是什么样的?

  1. http客户端发起请求,创建端口
  2. http服务器在端口监听客户端请求
  3. 一旦收到请求,http服务器向客户端返回状态和内容

具体步骤:

  1. 浏览器搜索自身的DNS缓存
  2. 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)


如何查看chrome内的dns缓存?

在chrome浏览器地址栏中输入

1.chrome://net-internals/#dns

那么就可以查看你曾经浏览过网站的目录。


  1. 读取本地的HOST文件
  2. 浏览器发起一个DNS的一个系统调用(具体请看之前的 linux网络管理——DNS作用)
  3. 浏览器获得域名对应的IP地址后,发起HTTP “三次握手”
  4. TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采HTTP 1.0的一个协议
  5. 服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是腾讯的页面就会把完整的HTML页面代码返回给浏览器
  6. 浏览器拿到了腾讯的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求都需要经过上面的主要的七个步骤
  7. 浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户

其实我们可以把一整个HTTP流程拆分开,拆分开为请求和响应。无论是请求和响应,都会发送http头和正文信息

HTTP头发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码

正文就是用户提交的表单数据

通过审查元素能找到耗时,通过分析timing能分析网站加载慢的原因

查看请求状态码跟响应的方法

请求方法:GET(读取数据)、POST(提交数据)、PUT(上传资源)、DELETE(删除)、HEAD、TRACE、OPTIONS…

状态码(返回浏览器,告诉浏览器请求是否成功失败),一般由三位数组成:1xx(表示请求已经接收,进行处理)、2xx(表示请求已经接收,并且成功处理掉了)、3xx(重定向,表示要完成一个请求还需要进一步的操作)、4xx(出现错误,请求有语法错误或者无法实现)、5xx(服务器端无法实现请求)

时间: 2024-10-14 22:26:38

HTTP填坑的相关文章

一名Android开发者的微信小程序填坑之路(2)

前言 上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天--当然是因为国庆节.说老实话,这十三天里面我都没有碰和小程序有关的东西--毕竟学习小程序的开发也只是起于兴趣,而平时的工作并不会涉及与其相关的东西--但是在这十三天里,我能明显的感受到小程序热正在逐渐的消退,或者说大家正在逐渐以一种较为平和的姿态接受它的存在,其实这是一件好事.期待公测的到来. 接下来我就直接进入正题了,另外,文末我想和大家分享一下我的国庆节. PS:这篇文章是接着上一篇文章 一名And

【结果很简单,过程很艰辛】记阿里云Ons消息队列服务填坑过程

Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路.当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力. 1.阿里云ONS介绍 ONS(Open Notification Service)即开放消息服务,是基于阿里开源消息中间件MetaQ(RocketMQ)打造的

LCT 填坑系列

清华冬令营 T1用了LCT 这个东西以前有写过 然而并不熟练 发现没了板子根本就不会写 只能填一填坑辣 BZOJ 2843 LCT 1 #include <bits/stdc++.h> 2 #define N 30010 3 #define ls c[x][0] 4 #define rs c[x][1] 5 using namespace std; 6 7 inline int read() 8 { 9 int x=0,f=1; char ch=getchar(); 10 while(ch&l

[临时向]蒟蒻的填坑记录

TAT这周开始填坑....这周大概是数据结构吧?来这里记录一下免得自己过几天又开始颓了TAT 1.3:中午看了下zkw线段树,写了bzoj3685...找前驱后缀的姿势不是很科学...不过速度相差不大就懒得改了. 晚上写treap..分别用zkw线段树和treap写了bzoj3224普通平衡树.....正常的treap大概300+ms...zkw线段树190+ms 1.4:中午用treap写了1503郁闷的出纳员....晚上写1058报表统计..弄了一晚上TAT 目测明天重开spaly...

移动端web开发填坑指南之——百分比的过错

在移动端开发中,特别是在安卓的微信端进行开发的时候会遇到各种奇奇怪怪的坑.慢慢写慢慢填坑. 今天遇到的是,移动端中对一个div指定了height:100%;之后在安卓微信浏览器端遇到当input调起软键盘之后整个页面布局被重新resize后压扁,而ios则不会遇到这个问题. 通过实验,发现用通过js获取当前可是窗口高度后再对该div进行赋值之后,此时在安卓调起软键盘就不会出现这样的问题. 可见时对高度进行百分比设置的错.因为100%导致整个页面在软键盘弹出后进行了重新的resize操作. 做一个

css 填坑常用代码分享

以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. /*强制不换行*/ white-space:nowrap; /*自动换行*/ word-wrap: break-word; word-break: normal; /*强制英文单词断行*/ word-break:break-all; 2. 两端对齐 text-align:justify;text-justify:inter-ideogra 3. 去掉Webkit(chrome)浏览器中input(文本框)或texta

ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐

环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若$前边带有信息,只是为了方便你理解和与自己对照. 安装过程中由于这样那样的原因,产生许多坑,所谓坑是对初学者来说,大牛们飘过吧. 步骤1.从官网下载ubuntu 14.04 X64 http://124.205.69.136/files/2013000000502943/202.141.176.11

多线程程序的填坑笔记和多线程编程应该遵循的规则

这几天晚上群里一朋友有偿叫我把他的程序弄稳定,因为是现场管理项目,需要做到无人职守,所以即使是客户端,也不能经常down机,因为之前对他的程序有过一个晚上的实地查看,基本流程已经有个大概的了解,我就接下来了. 刚开始的时候, 程序运行不到一个上午,内存暴涨,有时几个小时就挂了,这个那天晚上发现了,找了半天发现一处加载图片的TMemoryStream没有释放. 没想到接下来还有很多的坑需要填. 一个个解决吧,看看有多少坑! 第一天:开始他跟我说他的连接数据库老是超出数量,会导致程序不能处理任务,当

初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞

[微信测试公众号] 半年前耍着玩搭起来的“微信简历”,是LAMP版的,很皮毛. 微信的官方文档在这 http://mp.weixin.qq.com/wiki/index.php 1.获取access token 2.自定义菜单创建,直接在调试工具上做了 http://mp.weixin.qq.com/debug 3.接入指南(接入自己的网站) 4.接收微信消息,判断消息类型,判断消息关键字(比如来自哪个按钮),响应消息 这里有个小坑,不同类型的消息数据结构略有不同,判空最好做细致点. [V2.0

UiAutomator2.0升级填坑记

UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 啰嗦 Google Android Developers 在2015年3月就发布了UiAutomator 2.0版本(下文简称U2),而公司的核心产品中用到还是UiAutomator老版本(下文简称U1),业界用U2的也不是很多,虽然有诸多问题和不便(如高版本OS中不支持Remo