Http简介

Http协议——超文本传输协议,是客户端(一般是浏览器)和服务端进行数据通信的基础同时也是客户端和服务端请求和应答的标准,它是一个基于TCP/IP协议之上的应用层协议。Http是基于请求-响应模式的,也就是没有请求的情况下,服务器不会和客户端建立连接,同时Http协议是无保存和无连接的,无保存就是Http协议无论客户端还是服务端都不会对上次的请求和应答的通信状态进行保存,但是某些情况下是需要维持好状态的,因此cookie&session技术的使用对于一些要保持状态的请求来说很重要。无连接就是每次连接都只处理一个请求,一旦处理完毕就断开请求。

Http工作

一般情况下客户端从浏览器发出一个Http请求(请求报文)到服务端的指定端口(一般为80),但客户端服务端中并不一定是直接通信的,客户端和服务端中间可能会存在一些代理服务器(如nginx)、网关之类的中间件对请求进行处理封装后再发到服务端,服务端接到客户端请求后会返回一个应答报文。

具体步骤

1.客户端从浏览器访问某个域名网址,DNS服务器会解析该网址将它转化为IP地址,客户端根据IP地址和指定端口与服务端建立TCP连接。
2.客户端会发出一个请求报文(一般是在TCP第三次握手的第三个报文),请求报文包括请求行,请求头部,空行和请求数据组成发送给服务器。
3.服务端接到客户端发出的请求报文并进行解析,定位到资源位置,将资源写到TCP套接字发送响应报文供客户端读取,响应报文包括响应行,响应头部,空行,和响应数据组成。
4.客户端读取报文,释放TCP连接。
5.客户端开始解析响应报文,解析响应报文时客户端会首先查看状态行的内容,看看请求是否成功,然后解析响应头,响应头里注明了返回的数据是什么字符集,是html、text还是图片。之后客户端开始读取响应数据,将响应数据,将响应数据对照相应格式进行转换让其在浏览器上显示。

Http常用四种请求

Restful风格必用的四个请求
GET:用于从服务端获取数据,一般用于查询。
PUT:用于更新数据,由post延伸而来,在Spring中使用put一般要配置HiddenHttpMethodFilter过滤器 并在表单中添加<input name="_method" value="PUT">
Delete:用于请求删除数据
Post:在Restful风格中一般用于请求添加数据,但日常使用不管增加查询中一搬都会用Post请求。

Http常见状态码

1XX:请求已被服务器接收,正在处理
2XX: 请求已被服务器接收、理解,基本意为请求成功
3XX:需要进一步处理
4XX:请求错误
5XX:服务器处理时发生错误
常见:
200 成功
301 请求已经移动到新的URI,浏览器定向到新的URI
400 客户端请求语法错误,服务端无法理解
404 服务器没有找到客户端发来的请求
405 客户端请求方法被禁止
500 服务器内部错误,无法处理请求
505 服务器不支持该协议的Http请求

具体报文阅读

867021-20180322001733298-201433635.jpg
请求具体报文

YWA$~LP)S(_[HZ_0L3@`8JF.png

867021-20180322001744323-654009411.jpg

QOW6{QLPTF31BR~E74P[}1N.png


Rise
4 声望1 粉丝