简述HTTP协议

来源:互联网 发布:法里内利 知乎 编辑:程序博客网 时间:2024/06/06 14:18

超文本传输协议HTTP规定了浏览器与服务器之间的请求和响应的格式与规则,它是万维网上能够可靠地交换文件的重要基础。

HTTP的操作过程

  1. 浏览器分析指向页面的URL
  2. 浏览器向DNS系统请求解析域名所对应的服务器IP地址
  3. DNS系统解析出服务器的IP,并返回给主机
  4. 浏览器与该服务器的进程建立TCP链接(三次握手,端口默认为80)
  5. 浏览器发出HTTP请求:如GET /article/index.html
  6. 服务器收到请求并作出相应处理,把文件index.html发送给浏览器
  7. 释放TCP链接(四次握手)
  8. 浏览器解析index.html文件,将web页显示出来。

HTTP协议的特点

HTTP协议是无状态的,即多次访问一个服务器上的页面,服务器并不知道你曾经访问过,每次访问的响应都当做第一次访问一样。所以,在实际应用中,通常使用CooKie加数据库的方式记录和跟踪用户的活动。
HTTP有非持久连接和持久连接:

  • 采用非持久连接时,网页的每个元素对象(如.png,jpeg图等)的传输都需单独建立一个TCP连接(第三次握手可携带请求信息)
  • 采用持久连接时,仅需建立一次TCP连接,服务器发送响应后仍保持连接,客户和服务器可以继续在这条连接上发送请求和响应报文。

Cookie以及其作用

CooKie是由服务器生成,但存储在用户主机上的文本文件,它保存了服务器和客户之间传递的状态信息,作为识别用户的手段。通过Cookie服务器就能从数据库中查询该用户的活动记录,进而可以执行一些个性化操作

HTTP请求报文中常见的几个方法

方法 意义 GET 请求读取由URL所标志的信息 HEAD 请求读取由URL所标志的信息的首部 POST 给服务器添加信息 CONNECT 用于代理服务器

get和post方法的区别:
一般我们在浏览器输入一个网址访问网站都是GET请求;在FORM表单中,可以通过设置Method指定提交方式为GET或POST,默认时为GET提交方式。

  • get请求一般不会修改服务器的信息,仅用于请求页面;post请求可能会修改服务器中的资源信息,如提交评论、博客等都是通过post请求实现。
  • get请求的信息附加在URL后面,这些被显示的暴露在外面。post请求的数据放在包体中,不容易暴露,因此一般用户登录等保密性高的不宜采用get请求,而用post请求。

如这个test.html文件做请求时

<!DOCTYPE html>     <html><head>      <title>test</title>    <meta charset="utf-8"></head> <body>          <form method = 'get'  target="_self">        <input type="text" name="keyword1" >        <input type="text" name="keyword2" >        <input type="hidden" name="hid" value="2">        <input type="submit"  name="search"  value="搜 索">    </form></body></html>

这里写图片描述
当点击确定时,请求的URL是这样的:
file:///E:/test.html?keyword1=111&keyword2=222&hid=2&search=%E6%90%9C+%E7%B4%A2
其中参数search后面是”搜 索”的转码,因为URL的编码格式采用的是ASCII编码。

当form的method值改为post时,提交表单时,表单所要传递的值不会显示在URL上。

0 0
原创粉丝点击