HTTP请求/响应的步骤:

  1. 客户端连接到WEB服务器:浏览器与web服务器的HTTP端口建立一个TCP套接字连接,例如:http://www.baidu.com
  2. 发送HTTP请求:通过TCP套接字,客户端向WEB服务器发送一个文本的请求报文,请求报文=请求行+报文头+空行+请求数据;
  3. 服务器接受请求并返回HTTP响应:WEB服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取,响应=状态行+响应头部+空行+响应数据;
  4. 释放TCP连接:若connection模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection模式为keepalive,则该链接会保持一段时间,在该时间内可以继续接受请求;
  5. 浏览器解析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相对安全

最新文章

  1. MongoDB基础
  2. NetBIOS与Winsock编程接口
  3. Session服务器配置指南与使用经验
  4. CSS中的各个选择节点,都有样式最后一个无样式的快捷解决方法
  5. jquery 中如何将数组转化为json字符串,然后再转化回来?
  6. 第六周 N题
  7. ABAP 日期时间函数(转)
  8. lol.py
  9. 再谈ORACLE CPROCD进程
  10. cocoaPods的安装使用 以及 Carthage
  11. EOS开发环境搭建
  12. Gruntfile.js模板
  13. vector, map, queue,set常用总结
  14. java模式—装饰者模式
  15. 【angularjs】使用angular搭建项目,实现隔行换色
  16. NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF
  17. Maya cmds filterExpand 列出 选择的 uvs vertices faces edges 等 component 类型
  18. 洛谷.4897.[模板]最小割树(Dinic)
  19. EasyUI tab问题记录
  20. ABP之事件总线(5)

热门文章

  1. null在mysql中的不同表现
  2. JVM——垃圾回收资格的判定
  3. 《逆袭团队》第九次团队作业【Beta】Scrum Meeting 1
  4. java代码实现文件的下载功能
  5. [Javascript] Use requestIdleCallback to schedule JavaScript tasks at an optimal time
  6. Greenplum常用的gp_toolkit & pg_catalog监控语句
  7. c++ 去掉所有空格及换行符
  8. tensorflow学习(一)
  9. mysql avg()函数,获取字段的平均值
  10. [JLOI 2015]骗我呢