协议
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
不同层之间定义不同的协议:
应用层:HTTP、FTP、TELNET、SNMP、DNS。
传输层:TCP、UDP。
网络层:IP。
HTTP(HyperText Transfer Protocol 超文本传输协议)是网络应用层的协议,建立在TCP/IP协议基础上。HTTP协议使用可靠的TCP连接,默认端口为80。
HTTP协议简介
用户打开web浏览器(常见的HTTP客户端),输入URL地址,就能接收到远程HTTP服务器端发送过来的网页,即HTTP遵循请求(Request)/应答(Response)模型。Web浏览器向web服务器发送请求,web服务器处理请求并返回适当的应答。所有HTTP连接都被构成一套请求和应答。
HTTP客户端和浏览器分别由不同的软件开发商提供,它们都可以用任意的编程语言编写。如用.net编写的客户端与用Java编写的服务器顺利通信,就必须遵守HTTP协议,这样才能彼此都懂对方发送的消息,HTTP协议严格规定了HTTP请求和HTTP响应的数据格式。
HTTP请求格式
HTTP协议规定,请求由三部分组成:
请求方式、URL(统一资源定位符)、HTTP协议/版本
请求头(Request Header)
请求正文(Request Content)(post方式才存在请求正文)
HTTP相应格式
HTTP协议规定,响应与请求一样,由3部分组成,分别是:
HTTP协议版本,状态代码,描述
响应头(Response Header)
响应正文(Response Content)
HTTP响应分析
1.HTTP协议版本,状态代码,描述
HTTP应答码也成为状态码,它反映了web服务器处理HTTP请求状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:
1XX:信息类(Information),表示收到web浏览器请求,正在进一步的处理中。
2XX:成功类(Successful),表示用户请求被正确接收、理解和处理。
3XX:重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。
4XX:客户端错误(Client Error),表示客户端提交的请求有错误。
5XX:服务器错误(Server Error),表示服务器不能完成对请求的处理。
常见的HTTP应答码:
200,OK;400,Bad Request;404,Not Found;405,Method Not Allowed。
2.响应头(Response Header),响应头和请求头一样包含许多有用的信息,例如服务器类型、日期时间、正文类型和正文长度等。
Server:Apache Tomcat/6.0.12
Date:Mon,6 Oct 2018 16:12:25 GMT
Content-Type:text/html; charset=utf-8
Last-Modified:Mon,6 Oct 2018 16:12:25 GMT
Content-Length:12
常见类型:
Content-Type:text/html; charset=GBK
Content-Type:text/plain; charset=utf-8
Content-Type:application/octet-stream
3.相应正文(Response Content),就是服务器返回的HTML页面。
响应头和响应正文之间必须存在CRLF(\r\n)符号行(CRLF Carriage Return Linefeed 是指回车符和行结束符),与响应头分开。