zoukankan      html  css  js  c++  java
  • 陌生又熟悉的HTTP协议

    一.HTTP是什么?
        1.HTTP协议:HyperText Transfer Protocol,超文本传输协议
        2.因特网上应用最为广泛的一种网络传输协议,用于从万维网服务器传输超文本到本地浏览器的传输协议,
        所有的www文件必须遵守这个标准,
        3.HTTP是一个基于TCP/IP通信协议来传递数据
    二.HTTP有哪些特点?
        1.HTTP协议工作在客户端-服务端架构上(b/s架构,这里的客户端仅指浏览器)
        2.浏览器作为HTTP客户端通过url向HTTP服务端即Web服务器发送所有请求
        3.HTTP默认端口号为80,但是你也可以改为8080或者其他端口
        4.HTTP是无连接的,即每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,
        采用这种方式可以节省传输时间(用完即走,再用时必须重新发起请求,不存在占着茅坑的现象)
        5.HTTP是无状态的,即对于事务处理没有记忆能力,如果后续处理需要前面的信息,则必须重传,
        这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快
        (这意味着每个请求都是独立的,即便是两个一模一样的请求也会被当做是两个请求)
        6.HTTP是媒体独立的:即只要是客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
        扩展:浏览器记住密码,和记录访问IP是如何实现的?

    三.HTTP请求有哪几部分组成?
        一个HTTP请求一般有四部分组成:
        1.HTTP请求的方法,比如是get还是post请求
        2.正在请求的url,总得知道请求的地址是什么吧
        3.请求头,包含一些客户端环境信息,身份验证信息等
        4.请求体,也就是请求正文,请求正文中可以包含客户端提交的查询信息,表单信息
        注意:一般来说请求头和请求体之间有一个空行,这个空行非常重要,它表示请求头已经结束,
        接下来的内容便是请求体

    四.HTTP的请求过程是什么样子的?
        一个完整的HTTP请求过程,一般有以下七个步骤:
        1.建立TCP连接接
        2.Web浏览器向Web服务器服务器发送请求命令
        3.Web浏览器发送请求头信息
        4.Web服务器应答
        5.Web服务器发送应答头信息
        6.Web服务器向浏览器发送数据
        7.Web服务器关闭TCP连接

    五.什么是get和post请求?
        get请求一般用于获取服务器的信息,它有以下特点:
        1.使用url传递参数,也就是参数是可见的
        2.对发送信息的数量也有限制,一般在2000个字符左右
        post请求一般用于修改服务器上的资源,它有以下特点:
        1.不使用url传递参数,即参数对用户是不可见的
        2.对发送的信息数量是无限制的
        注意:表单一般用post方式提交,post请求的参数一般都嵌入在请求体中,对用户是不可见的,
        不过可以使用工具拦截,如fiddler等

    六.HTTP响应有哪几部分组成:
        一个HTTP请求一般有三部分组成:
        1.一个数字或文字组成的状态码,用来显示请求成功还是失败
        2.响应头,包含的信息有服务器类型,日期,时间见内容类型和长度等
        3.响应体,也就是响应的正文

    七.HTTP的状态码有哪些类型?
         HTTP的状态码一般有3位数字构成,其类型如下:
        1xx:信息类,表示收到Web浏览器请求,正在进一步处理中
        2xx:成功,表示用户请求被正确接收,理解和处理
        3xx:重定向,表示请求没有成功,客户必须采取进一步的动作
        4xx:客户端错误,表示客户端提交的请求有错误,如404 NOT Found,请求的文件不存在
        5xx:服务器错误,表示服务器不能完成对请求的处理

     

  • 相关阅读:
    Android开源库
    银行卡的数字检測
    hdu4941 Magical Forest
    android之检測是否有网络
    在Oracle数据库中使用NFS,怎样调优?
    centos+nginx+php-fpm+php include fastcgi_params php页面能訪问但空白,被fastcgi_params与fastcgi.conf害慘了
    漫谈反射
    Android 四大组件学习之BroadcastReceiver二
    【LeetCode】two num 利用comparable接口 对对象进行排序
    扩展功能==继承?
  • 原文地址:https://www.cnblogs.com/chengzi-he/p/9443823.html
Copyright © 2011-2022 走看看