HttpClient学习(四)—— 关于Http
一、Http状态码
状态码分类
- 100 ~ 199 信息提示
- 200 ~ 299 成功
- 300 ~ 399 重定向
- 400 ~ 499 客户端错误
- 500 ~ 599 服务端错误
常见状态码
- 200 OK
- 401 Unauthorized
- 404 Not Found
- 500 Internal Server Error
从2xx,3xx,4xx,5xx分别举例出常见的code,面试官会问301和302的区别,以及500/503/504分别在哪些场景出现。
二、Http网络请求的基本优化
- 带宽
- 延迟
- 服务器阻塞:服务器会因为一些原因阻塞请求。例如服务器只支持4个连接,超出的连接会被阻塞。
- DNS查询:客户端需要知道目标服务器的IP,将域名解析为IP。
- 建立连接:HTTP基于TCP协议,如果客户端每次跟同一个服务端通信都需要经历三次握手,连接无法高可用,会带来更大延迟。
三、Http1.0和Http1.1的区别
缓存处理
带宽优化及网络连接的使用
错误通知的管理
Host头处理
长连接
四、Http与Https的区别
参考文档
[1]: HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
[2]: 做支付遇到的HttpClient大坑
[3]: 字节跳动、腾讯后台开发面经分享(2019.5)
[4]: 喵星人教你 HTTP 状态码
[5]: 最近学习了 Http 连接池
HttpClient学习(四)—— 关于Http的更多相关文章
- Java接口自动化测试之HTTPClient学习(四)
pom.xml 文件中dependency <dependencies> <dependency> <groupId>org.testng</groupId ...
- HttpClient学习整理
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2.使用POST方式提交数据(httpClient3) 3. 处理页面重定向 ...
- TweenMax动画库学习(四)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- SVG 学习<四> 基础API
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- HttpClient(四)-- 使用代理IP 和 超时设置
1.代理IP的用处: 在爬取网页的时候,有的目标站点有反爬虫机制,对于频繁访问站点以及规则性访问站点的行为,会采集屏蔽IP措施.这时候,就可以使用代理IP,屏蔽一个就换一个IP. 2.代理IP分类: ...
- HttpClient 学习整理【转】
转自 http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的 ...
- Android JNI学习(四)——JNI的常用方法的中文API
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- SCARA——OpenGL入门学习四(颜色)
OpenGL入门学习[四] 本次学习的是颜色的选择.终于要走出黑白的世界了~~ OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 无论哪种颜色模式,计算机都必须为每一个像素保存一些数 ...
- ZigBee学习四 无线+UART通信
ZigBee学习四 无线+UART通信 1) 协调器编程 修改coordinator.c文件 byte GenericApp_TransID; // This is the unique messag ...
- (转)SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合
http://blog.csdn.net/yerenyuan_pku/article/details/72231763 之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBa ...
随机推荐
- Python 使用gevent下载图片案例
import urllib.request import gevent from gevent import monkey monkey.patch_all() def downloader(img_ ...
- iOS NSNotification传递带参数的通知
普通的通知使用 注册观察者 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNotificat ...
- orangepi香橙派安装VNC Viewer远程桌面
用ssh连接实在没有图形界面操作的好,虽然命令会快,但是很多命令都记不住. 第一步: sudo apt-get install xfce4 第二步: sudo apt-get install vnc4 ...
- Linux软件包(源码包和二进制包)及其区别和特点
Linux 下的软件包众多,而且几乎都是经 GPL 授权的,也就是说这些软件都免费,振奋人心吧?而且更棒的是,这些软件几乎都提供源代码(开源的),只要你愿意,就可以修改程序源代码,以符合个人的需求和习 ...
- tcpdump命令及输出详解
一. 使用方法 1. 指定类型 host:指定主机 tcpdump host 192.168.100.1 tcpdump host 192.168.100.1 and !192.168.100.2 t ...
- es6 class extends
Class和普通构造函数有何区别 JS构造函数 function MathHandle(x, y){ this.x = x; this.y = y; } MathHandle.prototype. ...
- 投掷硬币(概率dp)
小Hi有一枚神奇的硬币.已知第i次投掷这枚硬币时,正面向上的概率是Pi. 现在小Hi想知道如果总共投掷N次,其中恰好M次正面向上的概率是多少. Input 第一行包含两个整数N和M. 第二行包含N个实 ...
- golang 时间的比较,time.Time的初始值?
参考: https://golangcode.com/checking-if-date-has-been-set/ https://stackoverflow.com/questions/209243 ...
- python学习之面向对象
目录 __main__,__name__ __module__,__class__ __init__ __del__ __repr__,__str__ __mro__ __call__ __new__ ...
- VUE编译报错 Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead
背景: 在使用VUE添加标签的时候编译报错,报错如下: Component template should contain exactly one root element. If you are u ...