HTTP协议(超文本传输协议HyperText Transfer Protocol)
一种无状态的,以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络超文本信息系统灵活的互动。
HTTP请求信息和响应信息的格式
请求:
1.请求行(起始行)
①请求方法:GET/POST/PUT/DELETE/TRACE/OPTIONS
②请求路径:通常是一个URL,标记了请求方法要操作的资源
③所用的协议:表示报文使用的HTTP协议版本
2.请求头信息(头部字段集合)
格式为key:value
3.请求主体信息(消息正文)
(可选)发送的内容
例:
POST /0606/02.php HTTP/1.1
Host:localhost
Content-type:application/x-www.form-urlencode
Content-length:5
Age=3
响应:
1.响应行
①所用的协议:表示报文使用的HTTP协议版本
②状态码:一个三位数,用代码的形式表示处理的结果,比如200是成功,500是服务器错误
③状态文字:作为数字状态码补充,更详细的文字解释
2.响应头信息
格式为:key:value
3.响应主体信息
(可选)响应内容
例:
HTTP/1.1 200 OK
Content-type:text/html
Content-length:5
hello
请求方法有哪些:
GET POST HEAD PUT TRACE DELETE OPTIONS
注意:这些请求方法web server不一定支持
HEAD:和GET基本一致,只是不返回内容
常用头字段:
①请求字段:请求头中的头字段,如Host,Referer
②响应字段:响应头中的头字段,如Server,Date
③通用字段:在请求头和响应头中都可以出现,如Content-type,Connection
浏览器打开网页的过程:
1.解析IP地址
浏览器从输入的URL解析域名,并以此检查缓存中有没有对应域名的ip
①浏览器缓存
②本机域名解析文件hosts(/etc/hosts)
如果上述步骤都没有获取ip,则发起DNS请求获取ip(DNS服务器)
2.网络请求
①TCP三次握手
②发起HTTP请求
③HTTP相应
④浏览器解析响应报文,渲染页面
⑤TCP四次挥手