HTTP初步综述

来源:互联网 发布:淘宝怎么查看我的评价 编辑:程序博客网 时间:2024/04/30 05:04

超文本语言

HTML是超文本标记语言,结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
如下面就是一个明显的例子:

<html>    <head>        <title>第一个表单</title>    </head>    <body>        <pre>            method:请求方式 get/post                get:默认方式,数据量小,安全性不高                post:量大,安全性相对高            action:请求的服务器路径            id:编号,前端(用户的浏览器)区分唯一性,js中使用            name:名称,后端(服务器)区分唯一性,获取值            只要提交数据给后台,必须存在name        </pre>        <form method="get" action="http://localhost:8888/index.html">            用户名:<input type="text" name="uname" id="123"/>        密码:<input type="password" name="pwd" id="456"/>        兴趣:<input type="checkbox" name="favorite" value="789">篮球        <input type="checkbox" name="favorite" value="452">足球        <input type="submit" value="登录"/>        </form>    </body></html>

打开后的显示页面是:
                         这里写图片描述

下面利用代码将该网页的信息输出:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;/** * 创建服务器,并启动 */public class Server {    private ServerSocket server;    public static void main(String[] args) {        Server server = new Server();        server.start();    }    /**     * 启动方法     */    public void start(){                try {            server = new ServerSocket(8888);            this.receive();        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 接收客户端     */    private void receive(){        try {            Socket client =server.accept();            StringBuilder sb =new StringBuilder();            String msg =null;//接收客户端的请求信息            BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));            while((msg=br.readLine()).length()>0){                sb.append(msg);                sb.append("\r\n");                if(null==msg){                    break;                }            }            //接收客户端的请求信息            String requestInfo =sb.toString().trim();                   System.out.println(requestInfo);        } catch (IOException e) {            //e.printStackTrace();        }    }
GET /index.html?uname=feng&pwd=132456&favorite=789 HTTP/1.1Host: localhost:10001Connection: keep-aliveAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36Accept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8

上面各句话的意思可见下面HTTP协议初解中的请求。

HTTP协议初解

在Intenet模型中,各层有各层的协议:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述