最近面试潮有些消退了,趁着余热赶一波浪,记录一下面试相关的问题伴着搜集的资料,,知识嘛、多学无意(疑)^_^
我喜欢两个屏,一边写博客一边查资料
第一波:HTTP协议Hyper Text Transfer Protocol(超文本传输协议)应用层的协议
从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
特点:简单快速、灵活、无连接、无状态
URI:uniform resource identifier:统一资源标识符,标识一个资源
由访问资源的命名机制、存放资源的主机名、资源名称(由路径表示,强调于资源)组成
URL:Uniform Resource Identifiers统一资源定位器
由协议、主机ip地址(端口号)、主机资源的具体地址(目录、文件名)组成
标识一个资源指明如何加载此资源,标识某一处资源的地址:传输数据、建立连接
https://blog.csdn.net/qq_31382921/article/details/52678183
https://blog.csdn.net/ma15732625261/article/details/79821160
HTTPS协议
blog.csdn.net域名,端口号不是必须,HTTP默认的端口号为80,HTTPS的端口号为443
qq_31**21 虚拟目录:域名后第一个/ 到最后一个/ 不是必须
文件名:最后一个/ 到? ,没有? 则到#
锚:从?到# 参数、搜索查询用
URN:uniform resource name 统一资源命名,通名字来标识资源
Request请求:
格式:请求行request line 头部header、空行和请求数据、如下
- 请求行:请求类型 要访问的资源 所使用的HTTP版本
- 请求头部:用来说明服务器要使用的附加信息
方法:
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,可获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件) 数据被包含在请求体中; 不知道资源标识符URI时使用POST创建资源; 造成新资源的建立、旧资源的修改;通常是非缓存的请求 状态不统一的方法,在POST请求中做任何处理都是“安全”的 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容; 当允许客户端指定新建资源的资源标识符URI时要使用PUT PUT是幂等的,你必须要发送所有可能的值保证幂等性; (要使用PUT请求,你必须发送所有可访问属性/值,而不仅仅是你想要改变的那些) |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户 |
OPTIONS | 允许客户端查看服务器的性能 服务器针对特定资源所支持的HTTP请求方法 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
GET和POST的区别网上有很多资料,简单来书post更安全,传输的数据量较大
状态统一性:
对于执行多次相同的http请求,处理服务端的资源的状态是相同的,GET/HEAD/PUT/DELETE都具有这种特性,POST没有
相应Response
状态行:由HTTP协议版本号, 状态码, 状态消息 三部分组成
(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
消息报头:说明客户端需要使用的一些附加信息,上面是服务器端
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
空行,消息报头后面的空行是必须的
响应正文,服务器返回给客户端的文本信息
状态码
- 1xx:指示信息–表示请求已接收,继续处理
- 2xx:成功–表示请求已被成功接收、理解、接受
- 3xx:重定向–要完成请求必须进行更进一步的操作
- 4xx:客户端错误–请求有语法错误或请求无法实现
- 5xx:服务器端错误–服务器未能实现合法的请求
HTTP工作原理:
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端;
步骤:
客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。
服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
——请求/响应模型
有没有发现HTTP/1.1报头字段重复、冗长:易造成TCP连接时延迟
改进:
2.0在同一连接上交错建立请求和相应消息,使用高效率编码的HTTP报头字段,容许请求的优先级,使得更多的请求快速的完成、提高性能、而且相对减少了TCP连接:与其他流更少的竞争更长时间的连接、更有效利用网络容量;
HTTP2.0
听说HTTP2.0都出来了,百度一查好多资料,要学的东西真是超级多
简单的说一下HTTP2.0,赶下后潮
- 多路复用、HEAD压缩、服务器推送、优先级请求
概述:
1、基本的协议单位是帧,每个帧有不同的类型和用途
报头HEADERS和数据DATA帧组成HTTP请求和响应
2、请求多路复用在一个流(相互独立)上分配多个HTTP请求响应交换
3、流量控制和优先级能确保正确使用复用流,流量控制助于确保只传播接受者使用的数据数据
4、新的交互模式,服务器能推送消息给客户端:服务器预测客户端需要
5、帧包含的HTTP报头字段是压缩的
文档结构
四部分:
启动HTTP/2:连接如何初始化
由客户端发起的运行在TCP连接上的应用层协议
帧、流层:描述HTTP/2流的结构及如何形成复用流的
帧、错误码:定义HTTP/2中使用的流和错误类型的详细内容
HTTP寻址、拓展需求:HTTP语义化是如何由帧和流表达的
小结:
这是上周日的笔记2018年4月19日08:34:58
那天下午考试,考完试有种解放了的感觉,开心(^▽^)
感谢下列的分享:
幂等:百科
HTTP协议详解
菜鸟教程HTTP协议
pseudo:HTTP协议中使用put和post使用区别
关于HTTP协议,一篇就够了
HTTP代理协议 HTTP/1.1的CONNECT方法
感谢分享,尊重原著、从给出链接做起