HTTP 有请求行,请求头,空行、请求数据组成。
请求行:请求方法字段,URL字段,HTTP版本字段组成,用空格分隔。例如:GET/index.html HTTP/1.1
HTTP中有多种请求方法:
HTTP1.0:GET, POST,HEAD方法(类似于get请求,返回的响应中没有具体内容,用户获取报头)
HTTP1.1新增了OPTION, PUT, DELETE, TRACE, CONNECT
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件,数据包含在请求体中)
HTTP:超文本传输协议,用于从万维网服务器传输超文本到本地浏览器的传送协议。基于TCP/IP通信协议来传递数据。属于应用层的面向对象的协议。HTTP协议工作于客户端-服务端架构上。
浏览器作为HTTP客户端通过URL向HTTP服务端(web服务器)发送所有请求,Web服务器根据接收到的请求,向客户端发送相应信息。
主要特点
1.简单快速,客户向服务器请求服务时,只需传送请求方法和路径,协议简单,http服务器规模小,通信速度快。常用方法GET,HEAD,POST.
2.灵活,HTTP允许传输任意类型的数据对象。
3.无连接,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。这种方法可以节省传输实践。
4.无状态,协议对事物处理没有记忆能力。如果后续处理需要前面的信息,则它必须重传,这样导致每次连接传送的数据量增大。服务器不需要先前信息时它的应答就快。
5.支持B/S及C/S模式
TCP/IP协议
访问一个URL经历了哪些过程?
客户端获取URL -> DNS 解析 -> TCP连接 -> 发送HTTP 请求-> 服务器处理请求 ->返回报文->浏览器解析渲染页面 - > TCP断开连接。
客户端:
1.应用层:
从应用层开始获取URL,通过负责域名解析的DNS服务获取网址的IP地址,根据HTTP协议生成HTTP报文(应用层结束)
2.传输层
(传输层开始)根据TCP协议连接从客户端到服务器(三次握手),
1.服务器处于监听状态,等待来自客户端的连接请求
2.客户端向服务器发送连接请求报文SYN,
3.服务端收到客户端发来的SYN,如果同意建立连接,则向客户端发送连接确认报 文SYN/ACK。
4.客户端收到SYN/ACK后,还要向服务端发送确认报文ACK
5.服务端收到ACK后,连接建立。
应该注意到,接收了 SYN 之后的所有报文都存在 ACK 字段。
3.网络层
网络层根据IP协议,ARP协议(获取MAC地址),OSPF协议(选择最优路径),搜索服务器地址,一边中转一边传输数据
4.数据链路层
数据链路层负责将0,1序列划分成数据帧,从一个节点传输到临近的另一个节点,这些节点是通过MAC来唯一标识的(MAC物理地址,一个主机会有一个MAC地址)
HTTP请求
1.GET:向特定的资源发出请求,获取/查询资源信息
2.POST:向指定资源提交数据进行处理请求。一般用于更新资源信息。
3.