http请求
http请求由四部分组成
1、请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
2、请求头,用来说明服务器要使用的附加信息
用于在请求消息中向服务器传递附加消息,主要包括客户机可以接受的数据类型、压缩方法、语言,以及客户计算机上保留的cookie信息和发出该请求的超链接源地址等。
Accept:客户端接收的类型,值可以为一个或多个MIME类型的值。(text/plain纯文本)
Cookie:每一个会话会产生一个sessionid。服务端存储一个sessionid和session对象的map
Referer:请求的来源地址。
Cache-Control:缓存控制
3、空行,请求头部后面的空行是必须的
4、请求体 ,可以添加任意的其他数据
http响应报文
http响应报文由四部分组成
1、响应行
2、响应头
Set-Cookie:服务端设置客户端的cookie。
3、空行
4、响应体
和请求报文相比,响应报文多了一个“响应状态码”。
响应状态码由5段组成:
1XX:告诉客户端,请求已经收到,正在处理。。。
2XX:处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
(200 成功)
3XX:重定向到其他地方。让客户端再发起一个请求以完成整个过程。
(301 所请求的页面已经转移至新的url 302 所请求的页面已经临时转移至新的url 303 服务端重定向 304 告诉客户端使用缓存 )
4XX:处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
(400 参数错误 404 资源未找到 405 post/get类型错误 415 content-type错误)
5XX:处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
http工作流程
在浏览器地址栏键入URL,按下回车之后会经历以下流程:
1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
5、释放 TCP连接;
6、浏览器将该 html 文本并显示内容;