简述HTTP协议
来源:互联网 发布:法里内利 知乎 编辑:程序博客网 时间:2024/06/06 14:18
超文本传输协议HTTP规定了浏览器与服务器之间的请求和响应的格式与规则,它是万维网上能够可靠地交换文件的重要基础。
HTTP的操作过程
- 浏览器分析指向页面的URL
- 浏览器向DNS系统请求解析域名所对应的服务器IP地址
- DNS系统解析出服务器的IP,并返回给主机
- 浏览器与该服务器的进程建立TCP链接(三次握手,端口默认为80)
- 浏览器发出HTTP请求:如GET /article/index.html
- 服务器收到请求并作出相应处理,把文件index.html发送给浏览器
- 释放TCP链接(四次握手)
- 浏览器解析index.html文件,将web页显示出来。
HTTP协议的特点
HTTP协议是无状态的,即多次访问一个服务器上的页面,服务器并不知道你曾经访问过,每次访问的响应都当做第一次访问一样。所以,在实际应用中,通常使用CooKie加数据库的方式记录和跟踪用户的活动。
HTTP有非持久连接和持久连接:
- 采用非持久连接时,网页的每个元素对象(如.png,jpeg图等)的传输都需单独建立一个TCP连接(第三次握手可携带请求信息)
- 采用持久连接时,仅需建立一次TCP连接,服务器发送响应后仍保持连接,客户和服务器可以继续在这条连接上发送请求和响应报文。
Cookie以及其作用
CooKie是由服务器生成,但存储在用户主机上的文本文件,它保存了服务器和客户之间传递的状态信息,作为识别用户的手段。通过Cookie服务器就能从数据库中查询该用户的活动记录,进而可以执行一些个性化操作
HTTP请求报文中常见的几个方法
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
- HTTP协议简述
- HTTP 协议 基础 简述
- http协议简述
- HTTP协议简述
- HTTP协议简述
- HTTP协议简述
- HTTP协议简述
- 简述HTTP协议
- 简述http协议
- 前端基础 -- HTTP协议简述
- Http,Socket,TCP/IP 协议简述
- 简述对http协议的理解
- 简述协议
- 简述HTTP网络协议工作原理的流程
- 简述tcp协议对http性能的影响及优化
- 简述HLS,HTTP,RTSP,RTMP协议的区别
- 简述HTTP 协议接收Message Body的方式
- 简述Socket,IP,TCP三次握手,HTTP协议
- 在Mac终端编译运行cpp格式c++文件
- lvs集群简介
- jdk中的标记性接口
- 城市是否可以坐车到达问题
- 玩一玩微信公众号开发(二) 管理凭据和自定义菜单
- 简述HTTP协议
- 内部排序之交换排序
- MyBatis 的数据库操作
- jQuery函数attr()和prop()的区别
- 读书小记
- 网易机试-赶去公司
- 蓝桥杯-第39级台阶
- Win64 驱动内核编程-23.Ring0 InLineHook 和UnHook
- HashSet、LinkedHashSet和TreeSet三者区别与联系