HTTP协议复习
2024-10-21 03:02:30
HTTP请求/响应的步骤:
- 客户端连接到WEB服务器:浏览器与web服务器的HTTP端口建立一个TCP套接字连接,例如:http://www.baidu.com
- 发送HTTP请求:通过TCP套接字,客户端向WEB服务器发送一个文本的请求报文,请求报文=请求行+报文头+空行+请求数据;
- 服务器接受请求并返回HTTP响应:WEB服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取,响应=状态行+响应头部+空行+响应数据;
- 释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该链接会保持一段时间,在该时间内可以继续接受请求;
- 浏览器解析HTML内容:客户端浏览器首先解析状态行查看表明请求是否成功的状态代码,然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。浏览器读取数据相应数据HTML根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:
1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
5、释放TCP连接;
6、浏览器将该html文本解析并显示内容;
POST和GET的区别:
1、GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456.,POST方法是把提交的数据放在HTTP包的Body中;
2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据大小没有限制;
3、GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值;
4、GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码,而POST相对安全。
最新文章
- MongoDB基础
- NetBIOS与Winsock编程接口
- Session服务器配置指南与使用经验
- CSS中的各个选择节点,都有样式最后一个无样式的快捷解决方法
- jquery 中如何将数组转化为json字符串,然后再转化回来?
- 第六周 N题
- ABAP 日期时间函数(转)
- lol.py
- 再谈ORACLE CPROCD进程
- cocoaPods的安装使用 以及 Carthage
- EOS开发环境搭建
- Gruntfile.js模板
- vector, map, queue,set常用总结
- java模式—装饰者模式
- 【angularjs】使用angular搭建项目,实现隔行换色
- NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF
- Maya cmds filterExpand 列出 选择的 uvs vertices faces edges 等 component 类型
- 洛谷.4897.[模板]最小割树(Dinic)
- EasyUI tab问题记录
- ABP之事件总线(5)
热门文章
- null在mysql中的不同表现
- JVM——垃圾回收资格的判定
- 《逆袭团队》第九次团队作业【Beta】Scrum Meeting 1
- java代码实现文件的下载功能
- [Javascript] Use requestIdleCallback to schedule JavaScript tasks at an optimal time
- Greenplum常用的gp_toolkit &; pg_catalog监控语句
- c++ 去掉所有空格及换行符
- tensorflow学习(一)
- mysql avg()函数,获取字段的平均值
- [JLOI 2015]骗我呢