1.什么是http协议?
http协议是一种基于TCP/IP协议,服务器与浏览器进行超文本传输的一种应用层协议,工作于客户端与服务器端之间。
2.有哪些特点?
传输速度快 请求方法(post,head,get)+路径
灵活 传输任意数据类型对象
无连接 每次连接只处理一个请求。一次连接若有多个请求,可以将请求重叠进行,这样不需要等待一个请求结束后再发送下一个请求。
无状态 无状态协议,无记忆功能。
3.http怎么构成?
URI VS URL
URI ① 统一资源标识符(uniform resource identifiers),唯一的标识一个资源。
② 访问资源的命名限制
③ 存放资源的主机名
④ 资源名称,由路径表示,着重强调资源
URL ① 统一资源定位符(uniform resource Locator),查找某个资源的足够信息, 是一种特殊的URI。
② 协议
③ 有该资源的主机IP协议
④ 主机资源的具体地址
4.http请求的request请求和response
request
构成: 请求行 + 请求头 + 空行 + 请求数据
请求行:请求行的构成为:请求方法字段+URL字段+HTTP协议版本号
请求头:
User-Agent:产生请求的浏览器类型
Accept:客户端可识别的内容类型列表
Host:主机名。多个域名对应一个IP地址
请求数据:只有请求方法为post时,该区域存放数据,get的数据存放于请 求行中
response
构成: 状态行 + 消息报头 + 空行 +响应正文
状态行:HTTP协议版本号+状态码+状态消息
5.http的请求方法
HTTP1.0:
GET:请求页面,返回实体
POST:提交数据,请求处理(导致新的资源建立或已有资源进行修改)
HEAD:类似于GET,但无具体类容
HTTP2.0
DELETE:请求删除指定页面
PUT:取代服务器的内容(指定文档)
CONNECT:代理服务器
OPTIONS:查看服务器状态
TRACE:回显服务器收到的请求
以上都是在HTTP1.0基础上新添加的请求方法
6.http的工作流程
工作流程
①域名解析
②发起tcp的3次握手
③建立tcp的连接后,发起http的请求
④服务器响应http请求,浏览器得到html代码
⑤浏览器解析代码,请求动态资源
⑥页面资源渲染给客户端
7.相关知识点
网络层(七层)
应用层 HTTP.FTP应用层协议(对数据进行包装)
表示层
会话层
传输层 TCP/UDP传输层协议(定义数据如何传输)
网络层 IP
数据链路层
物理层
get/post的区别
get的数据在URL之后,以?进行分割传输
get提交的数据大小有限制,post无限制(但浏览器一般会有限制)
get通过Request.QueryString来获取变量的值。post用Request.Form来获取
get会带来安全问题。
tcp的三次握手
第一次:建立连接,客户端发送请求报文,SYN置1,等待服务器确认
第二次:服务器收到消息,进行一系列报文改动后发送给客户端
第三次:客户端收到报文后向服务器发送报文确认
tcp的四次挥手
第一次:客户端告诉服务端,没什么东西要发了
第二次:服务端告诉客户端,我知道了。
第三次:服务端告诉客户端,我先下了
第四次:客户端告诉服务端,我知道了,我也下了