• HTTP协议详解(一)——初识HTTP及请求


    何为HTTP(超文本传输协议)?

    协议,即约定俗成的规范。HTTP则是浏览器与服务器之间交流的一种规范。HTTP基于TCP/IP协议,属于应用层的协议。

    为什么Web应用不使用TCP或者UDP协议呢?

    TCP基于连接和三次握手,像C/S架构的网站,最多上千个Client同时连接,而B/S架构的网站,十万人同时在线是很平常的,如果十万个客户端同时与服务器保持连接,服务器会承载不了。UDP则是一种不可靠且不安全的协议,无法满足Web应用的要求。

    于是衍生出HTTP协议。HTTP请求结束后,服务器立即关闭连接,释放资源。

    HTTP工作流程及原理

    1.由客户端向服务器发起一个HTTP请求,请求建立一个到服务器指定端口(默认80)的TCP连接。

    2.服务器在指定端口(默认80)接收到客户端发来的HTTP请求。

    3.服务器向客户端发回一个状态行(比如"HTTP/1.1 200 OK"),和响应的消息。

    4.客户端接收到服务器返回的信息,并把内容显示在屏幕上,然后与服务器断开连接。

    HTTP请求详解

    一个HTTP请求代表客户端(浏览器)向服务端发送数据的过程。一个完整的HTTP请求内容分为三个部分:请求行、请求头、请求正文。

    1.请求行:

    格式 - “请求方法 URI HTTP协议版本号”

    例如 - GET /helloworld/user.html HTTP/1.1

    2.请求头:

    内容 - 包含客户端请求的服务器主机名,以及客户端的环境信息等。

    部分头属性解释 -

    Accept:用于告诉服务器,客户端支持的数据类型  (例如:Accept:text/html,image/*)
    Accept-Charset:用于告诉服务器,客户端采用的编码格式
    Accept-Encoding:用于告诉服务器,客户端支持的数据压缩格式
    Accept-Language:客户端语言环境
    Host:客户端通过这个服务器,想访问的主机名
    If-Modified-Since:客户端通过这个头告诉服务器,资源的缓存时间
    Referer:客户端通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
    User-Agent:客户端通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
    Cookie:客户端通过这个头,将Cookie信息带给服务器
    Connection:告诉服务器,请求完成后,是否保持连接
    Date:告诉服务器,当前请求的时间

    3.请求体

    即实体内容,是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
    (GET请求时,通过url传给服务器的值。POST请求时,通过表单发送给服务器的值)

  • 相关阅读:
    Android
    十大基础有用算法之迪杰斯特拉算法、最小生成树和搜索算法
    【随想】android是个什么东西,andorid机制随想
    【Unity3D】【NGUI】Atlas的动态创建
    Java集合01----ArrayList的遍历方式及应用
    JAVA线程
    VC++的project文件
    selector的button选中处理问题
    单元測试和白盒測试相关总结
    leetCode(40):Path Sum
  • 原文地址:https://www.cnblogs.com/builder4ever/p/11759249.html
Copyright © 2020-2023  润新知