zoukankan      html  css  js  c++  java
  • HTTP协议复习

    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相对安全

     

  • 相关阅读:
    layui学习
    网络安装Centos x64 6.10
    给没有连接因特网的centos使用yum安装其他软件。
    Java使用线程池
    记录一次查看后台是否在运行资源备份上报到华为云存储的过程
    潭州课堂python
    什么是动态规划?动态规划的意义是什么?
    南明区教师信息管理系统之审批流程设计思路
    连接慢的主要原因是DNS解析导致
    jfinal中,render的时候如何取到view根目录
  • 原文地址:https://www.cnblogs.com/panweiwei/p/11909031.html
Copyright © 2011-2022 走看看